質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

700閲覧

Python3 英文中の単語の個数を求めるプログラムに関して

tako15

総合スコア11

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2021/12/13 04:01

編集2021/12/13 04:02

#前提・条件
英文内(sample.txt)の単語の個数を求めるプログラム(freq_count.py)を作成したい。トークンの個数は辞書型変数を使用する。

入力:sample.txt
出力:頻度と単語をペアで1行で標準出力したい

sample.txt (単語/品詞)
My/PRP name/NN is/VBZ Taro/NNP ./.
I/PRP am/VBP Japan/NNP university/NN student/NN ./.
I/PRP study/VB Informatics/NNS ./.
I/PRP like/VB playing/VBG games/NNS ./.
I/PRP am/VBP interested/VBN in/IN cameras/NNS ./.

品詞はこのサイト(https://www.ibm.com/docs/ja/wca/3.5.0?topic=analytics-part-speech-tag-sets)を参照しました。

#質問内容
python 3.9.9を使用しています。
I/PRPやam/VBPなどの個数と単語・品詞のセットでの出力は出来ましたが、個数と単語のみでの出力が出来ないので、ご教授頂きたいです。よろしくお願いします。

##ソースコード

python3

1import sys 2token_freq = {} # 変換器 トークンを入れると、個数が返ってくる 3tokens = [] # 各トークンを入れる --> My/PRP , Taro/NNP 4 5with open(sys.argv[1], 'r') as f: 6 7 for sentence in f: 8 sentence = sentence.rstrip('\n') 9 for tokens in sentence.split(' '): #トークンをキーとする 10 token_freq[tokens] = token_freq.get(tokens, 0) + 1 11 12 dict = [(freq, word) for word, freq in token_freq.items()] 13 14 for freq, word in dict[:100]: #freq-->個数 15 print(freq, word, sep = '\t') #タブ区切りで出力 16

##出力結果

python3

11 My/PRP 21 name/NN 31 is/VBZ 41 Taro/NNP 55 ./. 64 I/PRP 72 am/VBP 81 Japan/NNP 91 university/NN 101 student/NN 111 study/VB 121 Informatics/NNS 131 like/VB 141 playing/VBG 151 games/NNS 161 interested/VBN 171 in/IN 181 cameras/NNS 19

##参考にした文献
https://qiita.com/ground0state/items/ad1a66bee66ee276d8e5

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

My/PRP/区切りで構成された文字列と考えると.splitが使えます。

Python

1print('My/PRP'.split('/')[0]) # My

投稿2021/12/13 05:39

can110

総合スコア38341

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tako15

2021/12/14 08:20

その考え方でやってみたらいけました。ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問