はじめに
Advent Calendar 2024 10日目だってさ。
もはやブログみたいなテンションになってきてしまいました。
アウトプットするたびに、知らないことが増えていくのが怖い。
知らないことを知るたびに知らないことが増えるってこれ無限ですよね。
まあ、そんなことは置いておいて、テキストマイニングしたいです。
テキストマイニング
テキストを抜き取ってくれるらしい。
コード
インプットファイルは、折角なので、Qiitaの規約のページからとってくることにします。
これが規約違反かは読んでない。(すまん。
これをインプットファイルに格納して、以下ファイルを実行すると、
path="~/input.txt"
file="~/output.txt"
# ファイルを読み込む
with open(path, encoding='utf-8') as f:
text = f.read()
import MeCab
from collections import defaultdict
# MeCabのTaggerを初期化
m = MeCab.Tagger()
node = m.parseToNode(text)
noun_counts = defaultdict(int)
# 名詞の出現回数をカウント
while node:
if node.feature.startswith("名詞"):
noun_counts[node.surface] += 1
node = node.next
# 結果をファイルに書き込む
with open(file, 'w', encoding='utf-8') as f:
for noun, count in noun_counts.items():
f.write(f"{noun} {count}\n")
print(f"The noun counts have been written to {file}.")
アウトプットファイルの一部を紹介
Qiita 25
Advent 2
Calendar 2
2024 5
トップ 1
ページ 2
search 1
記事 19
質問 2
検索 2
notifications 1
ユーザー 122
以下略
これを可視化するととても面白いと思う。
感想
Pythonの環境構築に2時間くらい、コードは調べながら、1時間くらいで書くことができた。
Pythonの良いところは、LLMや機械学習、データエンジニアリングができるところ見たい。
データサイエンティストを目指す自分にとっては、かなり良いと思った。
もう少し複雑なこともしてみたい。