lemmatizer
を使用して文字列を前処理して、句読点と数字を削除しようとしています。私はこれを行うには、以下のコードを使用しています。エラーは出ませんが、テキストは適切に前処理されていません。ストップワードのみが削除されますが、リーマタイミングは機能せず、句読点や数字も残ります。Python:前処理テキスト
from nltk.stem import WordNetLemmatizer
import string
import nltk
tweets = "This is a beautiful day16~. I am; working on an exercise45.^^^45 text34."
lemmatizer = WordNetLemmatizer()
tweets = lemmatizer.lemmatize(tweets)
data=[]
stop_words = set(nltk.corpus.stopwords.words('english'))
words = nltk.word_tokenize(tweets)
words = [i for i in words if i not in stop_words]
data.append(' '.join(words))
corpus = " ".join(str(x) for x in data)
p = string.punctuation
d = string.digits
table = str.maketrans(p, len(p) * " ")
corpus.translate(table)
table = str.maketrans(d, len(d) * " ")
corpus.translate(table)
print(corpus)
私が手に最終的な出力は次のようになります。
This beautiful day16~ . I ; working exercise45.^^^45 text34 .
と期待される出力は次のようになります。
This beautiful day I work exercise text
。 –
この提案をありがとうございます。しかし、私が期待しているように上記のコードは動作しません。以前は同じコードを使用していましたが、うまくいきませんでしたが、今回はうまくいかない理由はわかりません。 – Alex