ツイートで NLTK WordNet Lemmatizer を使用しようとしています。
WordNet にないすべての単語 (Twitter ハンドルなど) を削除したいのですが、WordNetLemmatizer.lemmatize() からのフィードバックはありません。単語が見つからない場合は、単語をそのまま返します。
WordNet で単語が見つかったかどうかを確認する方法はありますか?
または、文字列から「適切な英単語」以外のものを削除するより良い方法はありますか?
ツイートで NLTK WordNet Lemmatizer を使用しようとしています。
WordNet にないすべての単語 (Twitter ハンドルなど) を削除したいのですが、WordNetLemmatizer.lemmatize() からのフィードバックはありません。単語が見つからない場合は、単語をそのまま返します。
WordNet で単語が見つかったかどうかを確認する方法はありますか?
または、文字列から「適切な英単語」以外のものを削除するより良い方法はありますか?
で確認できます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 データを処理するためのカスタム ロジックを実際に作成する必要があります。具体的には、ハッシュ タグ、@ 返信、ユーザー名、リンク、リツイートなどを処理します。