前提・実現したいこと
プログラミング初心者です。pythonを用いた形態素解析とGUIの勉強のため、
tkinter と janome.tokenizer を用いてプログラムを書きました。
インプットした文章から名詞、接続詞、動詞を抜き出し、ボタンを押せばアウトプットするプログラムを
書きましたが、ほぼコピペでなぜ動いているのかわからず、修正の仕方がわかりません。
力を貸していただければ幸いです。
要望としては
わかりやすい文で、解析、アウトプットする方法を教えてほしい。
入力した文章と逆になってアウトプットされているので、文章と同じ順番で出力する方法を教えてほしい。
発生している問題
1.入力した文章と逆になってアウトプットされているので文章と同じ順番で出力したい。
問題の例)
入力した文章 本日は晴天なり、そして私は買い物に出る。
出力した名詞 買い物;私;晴天;本日;
出力した接続詞 そして;
出力した動詞 出る;なり;
希望内容の例)
入力した文章 本日は晴天なり、そして私は買い物に出る。
出力した名詞 本日;晴天;私;買い物;
出力した接続詞 そして;
出力した動詞 なり;出る;
2.アウトプットするプログラムをほぼコピペでやっているので機能がわからない。他の書き方が知りたい。
プログラム内容
lang
1#tkinterのインポート 2import tkinter as tk 3 4from janome.tokenizer import Tokenizer # Tokenizerのインポート 5import re # 正規表現モジュール 6 7# オブジェクトTokenizeのインスタンス生成 8t = Tokenizer() 9################################################################################ 10# ウィンドウを作成 11window = tk.Tk() 12window.title("Hello, World!")# 試行タイトル1 13window.geometry("400x500") # サイズ 14 15title = tk.Label(text="コントロール画面")# 試行タイトル2 16title.pack() 17################################################################################ 18#ボタン1_入力内容を解析してアウトプット 19def btn_click(): 20 s = str(txt_1.get()) 21 22 print([txt_2.insert(0,token.surface+";") for token in t.tokenize(s) 23 if token.part_of_speech.startswith('名詞')])# ←ここの機能 24 25 print([txt_3.insert(0,token.surface+";") for token in t.tokenize(s) 26 if token.part_of_speech.startswith('接続詞')])# ←ここの機能 27 28 print([txt_4.insert(0,token.surface+";") for token in t.tokenize(s) 29 if token.part_of_speech.startswith('動詞')])# ←ここの機能 30 31#ボタンX_入力内容を初期化 32def btn_clickX(): 33 txt_1.delete(0, tk.END) 34 txt_2.delete(0, tk.END) 35 txt_3.delete(0, tk.END) 36 txt_4.delete(0, tk.END) 37################################################################################ 38# 各種ボタン設定 39 40button1 = tk.Button(window,text = '要素解析',command = btn_click).place(x=175,y=30) 41buttonX = tk.Button(window,text = 'リセットボタン', command = btn_clickX).place(x=175,y=350) 42 43# テキスト注釈を表示 44lbl_1 = tk.Label(text='文字入力') 45lbl_1.place(x=30, y=150) 46 47lbl_2 = tk.Label(text='名詞') 48lbl_2.place(x=30, y=200) 49 50lbl_3 = tk.Label(text='接続詞') 51lbl_3.place(x=30, y=250) 52 53lbl_4 = tk.Label(text='動詞') 54lbl_4.place(x=30, y=300) 55 56# テキストボックス 57txt_1 = tk.Entry(width=45) 58txt_1.place(x=90, y=150) 59 60txt_2 = tk.Entry(width=45) 61txt_2.place(x=90, y=200) 62 63txt_3 = tk.Entry(width=45) 64txt_3.place(x=90, y=250) 65 66txt_4 = tk.Entry(width=45) 67txt_4.place(x=90, y=300) 68 69window.mainloop() 70
###使用方法
1.文字入力と書いているテキストボックスに文章を入れる。
2.上にある要素解析ボタンを押す。
3.下にあるリセットボタンでテキストボックス内を消去する。
###構文のコピペ元
Python, Janomeで日本語の形態素解析、分かち書き(単語分割)
初投稿、お見苦しい点ご了承ください。
回答1件
あなたの回答
tips
プレビュー