2017-08-23 9 views
0

私のCSVファイルから、特定の品詞タグVBDVBNでタグ付けされた単語を削除します。次のコードを入力した後:「範囲外のリストインデックスはIndexError」:しかし、私はエラーを取得していますCSVファイルから「VBD」と「VBN」を除くすべてのPOSタグを削除するにはどうすればよいですか?

for word in POS_tag_text_clean: 
    if word[1] !='VBD' and word[1] !='VBN': 
     words.append(word[0]) 

私のCSVファイルには、10人の口コミ(10件)を持ち、行名はCommentです。ここで

は私の完全なコードです:

df_Comment = pd.read_csv("myfile.csv") 

def clean(text): 
    stop = set(stopwords.words('english')) 
    exclude = set(string.punctuation) 
    lemma = WordNetLemmatizer() 
    tagged = nltk.pos_tag(text) 

    text = text.rstrip() 
    text = re.sub(r'[^a-zA-Z]', ' ', text) 
    stop_free = " ".join([i for i in text.lower().split() if((i not in stop) and (not i.isdigit()))]) 
    punc_free = ''.join(ch for ch in stop_free if ch not in exclude) 
    normalized = " ".join(lemma.lemmatize(word) for word in punc_free.split()) 
    return normalized 

text_clean = [] 
for text in df)Comment['Comment']: 
    text_clean.append(clean(text).split()) 
print(text_clean) 

POS_tag_text_clean = [nltk.pos_tag(t) for t in text_clean] 
print(POS_tag_text_clean) 


words=[] 
for word in POS_tag_text_clean: 
    if word[1] !='VBD' and word[1] !='VBN': 
     words.append(word[0]) 

は、どのように私は、エラーを修正できますか?

+0

を、 'NN' と 'JJ' は 'VBD' と 'VBN' に変更する必要があります。ごめんなさい。 – bluesun

+0

エラーが発生している場所を追加してください。 –

+0

エラー( 'IndexError:リストインデックスが範囲外です)は、上記の最後のコードを入力した後に発生します。 の単語はPOS_tag_text_clean: word [1]!= 'VBD'とword [1]!= 'VBN': words.append(word [0]) – bluesun

答えて

0

これは一例と対応する出力せずに、あなたの問題を理解することは少し難しいですが、それはこのようになります。

textが文字列であると仮定すると、text_cleanはどこごと、文字列のリストのリストになりますstringは単語を表します。品詞タグ付けの後では、POS_tag_text_cleanは、単語とそのタグを含むタプルのリストのリストになります。

私が正しいとすれば、変数の名前が示すように、最後のループは実際には単語の代わりにデータフレームから項目をループします。アイテムに単語が1つしかない場合(clean()にたくさんフィルタをかけているため)、word[1]へのコールは失敗し、報告したものと似たエラーが表示されます。

代わりに、このコードを試してみてください。タイトルに

words = [] 
for item in POS_tag_text_clean: 
    words_in_item = [] 
    for word in item: 
     if word[1] !='VBD' and word[1] !='VBN': 
     words_in_item .append(word[0]) 
    words.append(words_in_item) 
+0

はい!これは私が欲しかったものです。あなたの助けに本当に感謝:) – bluesun

+0

素晴らしい。答えを受け入れることもできますか? – Tobias

+0

Tobias、NNやRBSなど特定の品詞タグでタグ付けされた単語を抽出する方法を教えてください。 – bluesun

関連する問題