2017-09-01 8 views
0

私はPythonの初心者で、ローカルマシンからcsvファイルをインポートした後にPOSタグ付けを行いたいと思います。私はオンラインからいくつかのリソースを探し、次のコードが動作することを発見しました。CSVファイルからのPythonトークン化とPOSタグ付け

text = 'Senator Elizabeth Warren from Massachusetts announced her support of 
Social Security in Washington, D.C. on Tuesday. Warren joined other 
Democrats in support.' 
import nltk 
from nltk import tokenize 
sentences = tokenize.sent_tokenize(text) 
sentences 

from nltk.tokenize import TreebankWordTokenizer 
texttokens = [] 
for sent in sentences: 
texttokens.append(TreebankWordTokenizer().tokenize(sent)) 
texttokens 

from nltk.tag import pos_tag 
taggedsentences = [] 
for sentencetokens in texttokens: 
taggedsentences.append(pos_tag(sentencetokens)) 
taggedsentences 

print(taggedsentences) 

私はそれを印刷して以来、上のコードの結果は次のようになります。

[[('Senator', 'NNP'), ('Elizabeth', 'NNP'), ('Warren', 'NNP'), ('from', 
'IN'), ('Massachusetts', 'NNP'), ('announced', 'VBD'), ('her', 'PRP$'), 
('support', 'NN'), ('of', 'IN'), ('Social', 'NNP'), ('Security', 'NNP'), 
('in', 'IN'), ('Washington', 'NNP'), (',', ','), ('D.C.', 'NNP'), ('on', 
'IN'), ('Tuesday', 'NNP'), ('.', '.')], [('Warren', 'NNP'), ('joined', 
'VBD'), ('other', 'JJ'), ('Democrats', 'NNPS'), ('in', 'IN'), ('support', 
'NN'), ('.', '.')]] 

これは私が取得したいと思い望ましい結果であるが、私はいくつかの行が含まれているCSVファイルをインポートした後、結果を取得したいと思い(各行に、いくつかの文章があります。)。たとえば、CSVファイルは次のようになります。最終的には

--------------------------------------------------------------- 
I like this product. This product is beautiful. I love it. 
--------------------------------------------------------------- 
This product is awesome. It have many convenient features. 
--------------------------------------------------------------- 
I went this restaurant three days ago. The food is too bad. 
--------------------------------------------------------------- 

、私はcsvファイルをインポートした後、上記の表示が望ましいのPOSタグ付け結果を保存したいと思います。私は(posタグ付き)各センテンスをcsv形式で各行に保存(書き込み)したいと思います。

2つの形式が可能です。最初は次のようになります(ヘッダーなし、各行にposタグ付き)。

---------------------------------------------------------------------------- 
[[('I', 'PRON'), ('like', 'VBD'), ('this', 'PRON'), ('product', 'NN')]] 
---------------------------------------------------------------------------- 
[[('This', 'PRON'), ('product', 'NN'), ('is', 'VERB'), ('beautiful', 'ADJ')]] 
--------------------------------------------------------------------------- 
[[('I', 'PRON'), ('love', 'VERB'), ('it', 'PRON')]] 
---------------------------------------------------------------------------- 
... 

第二のフォーマットは次のように見えるかもしれない(NOヘッダ、一つのセルに保存されたトークン及びPOSタガーの各セット):

---------------------------------------------------------------------------- 
('I', 'PRON') | ('like', 'VBD') | ('this', 'PRON') | ('product', 'NN') 
---------------------------------------------------------------------------- 
('This', 'PRON') | ('product', 'NN') | ('is', 'VERB') | ('beautiful', 'ADJ') 
--------------------------------------------------------------------------- 
('I', 'PRON') | ('love', 'VERB') | ('it', 'PRON') | 
---------------------------------------------------------------------------- 
... 

Iは、最初の第2のフォーマットを好みます。

私がここに書いたpythonコードは完全に動作しますが、私はCSVファイルでも同じことをやりたいと思いますし、最終的に私のローカルマシンに保存します。

最終的な目的は、文から名詞型の単語(NN、NNPなど)のみを抽出したいということです。

誰かがpythonコードを修正する方法を教えてもらえますか?

+1

結果のCSVをどのように使用する予定ですか?私は括弧でこれをPythonにリロードしようとすると頭痛になるかもしれないので尋ねるだけです。 – Tony

答えて

-1

ここで既に回答されている質問を参照してください。ポストに記載されているように名詞だけを除外するためのタグ付けをいくつか行うことができます。 SO Link

+1

この質問があなたのリンクの複製である場合は、投票してそれを複製としてクローズしてください。リンクのみの回答はお勧めしません。 –

+0

@Sincole Brans、今私は名詞が必要ですが、将来もadjを必要とします。だから、名詞だけでなく、すべての単語とタグ付けセットを抽出したいと思います。問題は、上記のコードが機能していることを前提に、csvファイルをインポートして結果を「print」ではなくcsv形式で保存する方法に似ていました。私はPythonの本当に初心者なので、質問の基本的な質問と混乱のために申し訳ありません。さらに、結果に括弧は必要ありません。私はちょうど私とプログラム(Rまたはpython)がどのタグがどの単語を示すのかを区別できるという意味で、区別された形式で '単語とタグ付け'のセットが必要です – Emily

関連する問題