2016-05-15 5 views
-1

NLTKからPOSタグを使用している名前のリストがあります。 thisismeのように混乱した名前のように、私はワードセグメントと一緒にそれを使用します。NLTK POSタグ抽出、キーを試しましたが値はまだありません

私はこれらの名前にループを使用してPOSタグを付けましたが、POSタグを抽出できません。エクササイズはすべてCSVから実行されています。

これは、私がCSVを終日に見せたいものです。

name, length, pos 
thisisyou 6  NN, ADJ 

私のコード今のところ

import pandas as pd 
import nltk 
import wordsegment 
from wordsegment import segment 
from nltk import pos_tag, word_tokenize 
from nltk.tag.util import str2tuple 

def readdata(): 
    datafileread = pd.read_csv('data.net.lint.csv') 
    domain_names = datafileread.DOMAIN[0:5] 

    for domain_name in domain_names: 
     seg_words = segment(domain_name) 
     postagged = nltk.pos_tag(seg_words) 
     limit_names = postagged 
     for keys,values in postagged: 
      print (posttagged) 

readdata() 

であり、私はこれはOKと思われるが、それは間違っている

NN 
NN 
ADJ 
NN 

この結果を得ます。一部のPOSタグは改行しないでください。それはちょうどNNNNのように混乱しているはずです。

答えて

0

print関数は、使用するたびに改行を挿入します。あなたはこれを避ける必要があります。このようにそれを試してみてください。

for domain_name in domain_names: 
    seg_words = segment(domain_name) 
    postagged = nltk.pos_tag(seg_words) 
    tags = ", ".join(t for w, t in postagged) 
    print(domain_name, LENGTH, tags) 

join()方法は", "で分離された単一の文字列として、POSタグを返します。私はあなたの例で6をどうやって得たかわからないので、ちょうどLENGTHと書いてあります。あなたが何を意味していても記入してください。

PS。あなたはここでそれを必要はありませんが、このように最後の改行を追加しないprint()を伝えることができます:print(word, end=" ")

+0

感謝のアレクシスが、それは完全に働きました。私は数時間前に助けを求めていたはずです。 – user970155

+0

あなたは(postaggedで、T WのT)に何が起こるかを説明してくださいでした、ありがとう – user970155

+0

イッツ[「ジェネレータ式」](https://docs.python.org/3.5/tutorial/classes.html#generator-expressions )、 'join()'を文字列のリストに相当するものに渡します。 [list comprehension](https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions)も参照してください。 – alexis

関連する問題