0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

この記事は、JavaとPythonを基礎から学びたい私のための Advent Calendar 2024の20日目の記事です。

自然言語処理とは

NLPと呼ばれています。簡単に説明するとコンピュータ側が人間の言葉をわかるようにするための処理のようです。コンピュータが人間の言葉を分析します。

形態素解析

文章を単語ごとにバラバラにして、バラバラになった単語一つ一つがどんな単語であるか(例えば動詞とか)を判断するものです。記述式アンケートの内容を分析したり、テキストマイニングとかいう技術にも使われているみたいです。ちなみにこの形態素解析のほかにも構文解析という、文を解析するものがあります。

janome

pythonの豊富な外部ライブラリの一つです。今回の形態素分析に必要なものです

 pip install janome

まずはこれで導入します。

使い方

まずは全文を載せておきます

analysis.py
from janome.tokenizer import Tokenizer

tokenizer = Tokenizer()

sentence = 'もうすぐクリスマスですね'

for token in tokenizer.tokenize(sentence):
    print(token)

簡単に出来ることがよくわかると思います。
まず1行目から

from janome.tokenizer import Tokenizer
tokenizer = Tokenizer()

janomeのtokenizerを使用します。

sentence = 'もうすぐクリスマスですね'

sentenceには解析したい文字を入れます。クリスマスが近いので、こんな文にしてみました。

for token in tokenizer.tokenize(sentence):
    print(token)

この行で解析をしています。文が入ったsentenseをtokenizeして、その結果をtokenとして出力しています。
結果:
もうすぐ 副詞,一般,,,,,もうすぐ,モウスグ,モースグ
クリスマス 名詞,一般,,,,,クリスマス,クリスマス,クリスマス
です 助動詞,,,,特殊・デス,基本形,です,デス,デス
ね 助詞,終助詞,
,,,*,ね,ネ,ネ

こんな感じで、各単語の特徴を教えてくれます。

応用

昨日まで学習してたデスクトップアプリに入れることもできます
こちらではテキストに文を入力することで動くようにしています。

analysisdesktop.py
import tkinter as tk

from janome.tokenizer import Tokenizer
tokenizer = Tokenizer()
window=tk.Tk()
window.geometry("400x800")
window.title("形態素解析")
title=tk.Label(text='形態素解析',font=("",30))
title.pack(pady=25)
label=tk.Label(text='文章を入力してね')
label.pack(pady=15)
txt=tk.Entry(window)
txt.pack(pady=25)
def ClickEvent():
    inputtxt=txt.get()
    txt.destroy()
    button.destroy()
    label.destroy()
    for token in tokenizer.tokenize(inputtxt):
        result=tk.Label(text=token)
        result.pack(pady=15)
   
button=tk.Button(text='解析',command=ClickEvent)
button.pack(pady=6)
window.mainloop()

結果:
image.png
これなら、Pythonを知らないけど文字の特徴を知りたい人でも使うことができます。

まとめ

janomeを使うと文字を単語ごとに区切り、各単語ごとに特徴を出してくれる。
実際に使っているのはjanomeのtokenizerの機能。

参考文献

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?