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

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

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

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

2回答

3692閲覧

タブ区切り文字のカウント(python)

退会済みユーザー

退会済みユーザー

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2015/09/09 09:13

*python3.4,windows使用*

メール\tメール\tメール\t名詞\tサ変接続\t\t\n は\tハ\tは\t助詞\t係助詞\t\t\n こちら\tコチラ\tこちら\t名詞\t代名詞\t一般\t\t\n

タブで区切られた4つ目の'名詞','助詞','名詞'を出現頻度をカウントしたいです.

単純にカウントすると以下のように'名詞'が'3'となります.
'代名詞'に含まれる'名詞'はカウントしたくないので,'2'という結果が欲しいのです.

lang

1>>> from collections import Counter 2>>> f=open('hoge.txt',encoding='hoge') 3>>> data = f.read() 4>>> counter = Counter(data) 5>>> print(data.count('名詞')) 63

各要素がタブ区切りになっているのでうまく使えないかとは思うのですが,
自分ではうまくできません.

最終的に,このサンプルなら
名詞 2
助詞 1
という結果を返してほしいのですが,良い方法を教えていただけないでしょうか.

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

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

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

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

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

guest

回答2

0

難しいことを考えないなら、これだけで数えられますよ。
※ただし4つ目の要素以外に含まれる"名詞"も数えます。("代名詞" と "名詞" の区別はします。)

Python

1hoge='メール\tメール\tメール\t名詞\tサ変接続\t\t\n 2は\tハ\tは\t助詞\t係助詞\t\t\n 3こちら\tコチラ\tこちら\t名詞\t代名詞\t一般\t\t\n' 4hoge.count('\t名詞')

要素4つ目限定で探すには、正規表現を使う方がいいかもしれないです。

Python

1 2import re 3 4hoge = 'メール\t名詞\tメール\t名詞\tサ変接続\t\t\n\ 5は\tハ\tは\t助詞\t係助詞\t\t\n\ 6こちら\tコチラ\tこちら\t名詞\t代名詞\t一般\t\t\n\ 7' 8 9#以下にマッチする文字列を対象にする 10# ・文字列先頭は 文字列先頭 または 改行 11# ・'単語\t'が3つ並ぶ 12# ・最後に '名詞' が付く 13pat = re.compile('(^|\n)(.*\t){3}名詞') 14 15#該当するものを列挙し、要素数を数える 16res = pat.findall(hoge) 17print( len(res) )

投稿2015/09/09 12:14

編集2015/09/09 12:19
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

標準のコレクションでは期待している処理はできません。
名詞のカウント以外にも仕様があると思いますので仕様に応じて処理を書くしかないと思います。
csvであればモジュールがあるのでそれを利用して書くと楽です。

import csv f = open('hoge.txt') data = csv.reader(f) for row in data: for column in row: if column == "名詞": : :

投稿2015/09/09 09:49

CharmSystems

総合スコア241

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問