下記の記事を再現
Text Analysis & Feature Engineering with NLP
https://towardsdatascience.com/text-analysis-feature-engineering-with-nlp-502d6ea9225d
上記のコードを参考に、kaggleのツイッターの自然言語処理コンペのデータをもとに自然言語処理を実施
Real or Not? NLP with Disaster Tweets
https://www.kaggle.com/c/nlp-getting-started/data
コードを拝借しているサイト
https://towardsdatascience.com/text-analysis-feature-engineering-with-nlp-502d6ea9225d
https://www.kaggle.com/rmisra/news-category-dataset
.str.contains(r'[^\s\w]')
--> 空白、アルファベット、数字ではない記号を含む
import nltk
# 英語のストップワードの設定
nltk.download('stopwords')
lst_stopwords = nltk.corpus.stopwords.words("english")
# ストップワードの除外
txt = [word for word in txt if word not in lst_stopwords]
import nltk
ps = nltk.stem.porter.PorterStemmer()
print([ps.stem(word) for word in txt])
その単語を、辞書に載っている形に従って分類する
import nltk
lem = nltk.stem.wordnet.WordNetLemmatizer()
nltk.download('wordnet')
print([lem.lemmatize(word) for word in txt])
import wordcloud
wc = wordcloud.WordCloud(background_color='black', max_words=100,
max_font_size=35)
wc = wc.generate(str(corpus))
LDA は1つの文書が複数のトピックから成ることを仮定した言語モデルの一種。
日本語だと「潜在的ディリクレ配分法」と呼ばれる。
https://bit.ly/330iXuq
https://fits.hatenablog.com/entry/2018/03/13/214609
import gensim
lda_model = gensim.models.ldamodel.LdaModel()
ner = spacy.load("en_core_web_lg")
事前にコマンドライン上で下記を実行し、開発環境を立ち上げなおす。
python -m spacy download en_core_web_lg
参考サイト https://stackoverflow.com/questions/56470403/spacy-nlp-spacy-loaden-core-web-lg
lst_tokens = nltk.tokenize.word_tokenize(corpus.str.cat(sep=" "))
Pythonシェルに移動し、次のように入力します。
>>> import nltk
>>> nltk.download()
次に、インストールウィンドウが表示される。
[モデル]タブに移動し、[識別子]列の下から[punkt]を選択する。
次に、[ダウンロード]をクリックすると、必要なファイルがインストールされる。
これで完了。
参考サイト
https://stackoverflow.com/questions/4867197/failed-loading-english-pickle-with-nltk-data-load