2

ツイートで NLTK WordNet Lemmatizer を使用しようとしています。

WordNet にないすべての単語 (Twitter ハンドルなど) を削除したいのですが、WordNetLemmatizer.lemmatize() からのフィードバックはありません。単語が見つからない場合は、単語をそのまま返します。

WordNet で単語が見つかったかどうかを確認する方法はありますか?

または、文字列から「適切な英単語」以外のものを削除するより良い方法はありますか?

4

1 に答える 1

4

で確認できますwordnet.synsets(token)。必ず句読点にも対処してから、それがリストにあるかどうかを確認してください。次に例を示します。

from nltk.tokenize import WordPunctTokenizer
from nltk.corpus import wordnet

my_list_of_strings = []  # populate list before using

wpt = WordPunctTokenizer()
only_recognized_words = []

for s in my_list_of_strings:
    tokens = wpt.tokenize(s)
    if tokens:  # check if empty string
        for t in tokens:
            if wordnet.synsets(t):
                only_recognized_words.append(t)  # only keep recognized words

ただし、Twitter データを処理するためのカスタム ロジックを実際に作成する必要があります。具体的には、ハッシュ タグ、@ 返信、ユーザー名、リンク、リツイートなどを処理します。

于 2015-11-09T15:01:02.837 に答える