Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What is going on with this article?
@FukuharaYohei

言語処理100本ノック-32(pandas使用):動詞の原形

More than 1 year has passed since last update.

言語処理100本ノック 2015「第4章: 形態素解析」32本目「動詞の原形」記録です。
今回も前回に引き続き、pandas使っているので1文で処理でき、拍子抜けするほど簡単です。独立した記事にするまでもないような・・・

参考リンク

リンク 備考
032.動詞の原形.ipynb 回答プログラムのGitHubリンク
素人の言語処理100本ノック:32 多くのソース部分のコピペ元
MeCab公式 最初に見ておくMeCabのページ

環境

種類 バージョン 内容
OS Ubuntu18.04.01 LTS 仮想で動かしています
pyenv 1.2.16 複数Python環境を使うことがあるのでpyenv使っています
Python 3.8.1 pyenv上でpython3.8.1を使っています
パッケージはvenvを使って管理しています
Mecab 0.996-5 apt-getでインストール

上記環境で、以下のPython追加パッケージを使っています。通常のpipでインストールするだけです。

種類 バージョン
pandas 1.0.1

第4章: 形態素解析

学習内容

夏目漱石の小説『吾輩は猫である』に形態素解析器MeCabを適用し,小説中の単語の統計を求めます.

形態素解析, MeCab, 品詞, 出現頻度, Zipfの法則, matplotlib, Gnuplot

ノック内容

夏目漱石の小説『吾輩は猫である』の文章(neko.txt)をMeCabを使って形態素解析し,その結果をneko.txt.mecabというファイルに保存せよ.このファイルを用いて,以下の問に対応するプログラムを実装せよ.

なお,問題37, 38, 39はmatplotlibもしくはGnuplotを用いるとよい.

32. 動詞の原形

動詞の原形をすべて抽出せよ.

回答

回答プログラム 032.動詞の原形.ipynb

import pandas as pd

def read_text():
    # 0:表層形(surface)
    # 1:品詞(pos)
    # 2:品詞細分類1(pos1)
    # 7:基本形(base)
    df = pd.read_table('./neko.txt.mecab', sep='\t|,', header=None, 
                       usecols=[0, 1, 2, 7], names=['surface', 'pos', 'pos1', 'base'], 
                       skiprows=4, skipfooter=1 ,engine='python')
    return df[(df['pos'] != '空白') & (df['surface'] != 'EOS') & (df['pos'] != '記号')]

df = read_text()
df[df['pos'] == '動詞']['base']

回答解説

前回の「動詞の表層形」が「動詞の原形」に変わっただけです。pandasだと条件をちょっと書き換えるだけ。

df[df['pos'] == '動詞']['base']

出力結果(実行結果)

プログラム実行すると以下の結果が出力されます。

出力結果
13        生れる
19         つく
31         泣く
37         する
39         いる
         ... 
212527     死ぬ
212532     得る
212537     死ぬ
212540     得る
212541    られる
Name: base, Length: 28119, dtype: object
2
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
FukuharaYohei
気の向いたままにいろいろと書きます。 仕事はSAP関連で、HANA、Fiori、SAPUI5、BusinessObjectsなどいろいろやっています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
2
Help us understand the problem. What is going on with this article?