ページ

title

告発\金沢地方検察庁\最高検察庁\法務省\石川県警察御中
弁護士と裁判官が共同で確定させた傷害・準強姦被告事件判決の再捜査要請に係る石川県警察珠洲警察署提出書面の情報公開

殺人未遂事件幇助の被告訴人: 木梨松嗣弁護士(金沢弁護士会)、岡田進弁護士(金沢弁護士会)、長谷川紘之弁護士(金沢弁護士会)、若杉幸平弁護士(金沢弁護士会)
名誉毀損罪の被告訴人: モトケンこと矢部善朗弁護士(京都弁護士会)、小倉秀夫弁護士(東京弁護士会)
市場急配センター株式会社 石川県金沢市駅西本町5丁目10番20所在
作成管理者: 石川県鳳珠郡能登町字宇出津 廣野秀樹
金沢地方検察庁御中

2021年2月11日木曜日

パソコン・情報公開## Rubyのmecabで形態素解析というのをやってみた(Linux)

パソコン・情報公開## Rubyのmecabで形態素解析というのをやってみた(Linux)

:CATEGORIES: #Ruby #Linux

sudo apt install mecab
sudo apt install libmecab-dev
sudo apt install mecab-ipadic-utf8

gem install mecab
gem install natto

- [Ruby]mecabを使ってみた(形態素解析) - Qiita[https://qiita.com/hkengo/items/0c47675c86535bc85d1e](https://qiita.com/hkengo/items/0c47675c86535bc85d1e)

 上記のページを参考に,そのままコピペで実行してみました。形態素解析という言葉自体,今日初めて目にしたのですが,これは国語の勉強にもなりそうです。かなり人工知能的な感じです。

```
irb(main):001:0> require 'mecab'
=> true
irb(main):002:0> tagger = MeCab::Tagger.new
irb(main):003:0>
irb(main):004:0>
irb(main):005:0>
irb(main):006:0> puts tagger.parse('太郎はこの本を二郎を見た女性に渡した。')
太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
この 連体詞,*,*,*,*,*,この,コノ,コノ
本 名詞,一般,*,*,*,*,本,ホン,ホン
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
二 名詞,数,*,*,*,*,二,ニ,ニ
郎 名詞,一般,*,*,*,*,郎,ロウ,ロー
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
女性 名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。 記号,句点,*,*,*,*,。,。,。
EOS
=> nil

%(py37_env) ➜ ~ sudo gem install natto
Fetching natto-1.2.0.gem
Successfully installed natto-1.2.0
Parsing documentation for natto-1.2.0
Installing ri documentation for natto-1.2.0
Done installing documentation for natto after 0 seconds
1 gem installed

(py37_env) ➜ ~ irb
irb(main):001:0> require 'natto'
=> true
irb(main):002:0> nm = Natto::MeCab.new
irb(main):003:0> puts nm.parse('太郎はこの本を二郎を見た女性に渡した。')
太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
この 連体詞,*,*,*,*,*,この,コノ,コノ
本 名詞,一般,*,*,*,*,本,ホン,ホン
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
二 名詞,数,*,*,*,*,二,ニ,ニ
郎 名詞,一般,*,*,*,*,郎,ロウ,ロー
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
女性 名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。 記号,句点,*,*,*,*,。,。,。
EOS
=> nil
irb(main):004:1* nm.parse('太郎はこの本を二郎を見た女性に渡した。') do |n|
irb(main):005:1* puts "#{n.surface}\tpart-of-speech id: #{n.posid}" if !n.is_eos?
irb(main):006:0> end
太郎 part-of-speech id: 44
は part-of-speech id: 16
この part-of-speech id: 68
本 part-of-speech id: 38
を part-of-speech id: 13
二 part-of-speech id: 48
郎 part-of-speech id: 38
を part-of-speech id: 13
見 part-of-speech id: 31
た part-of-speech id: 25
女性 part-of-speech id: 38
に part-of-speech id: 13
渡し part-of-speech id: 31
た part-of-speech id: 25
。 part-of-speech id: 7
=> nil
irb(main):007:0> nm = Natto::MeCab.new('-F%m\t%f[0]\t%f[7]\n')
irb(main):008:0> enum = nm.enum_parse('太郎はこの本を二郎を見た女性に渡した。')
irb(main):010:0> enum.next
=> #, stat=0, @surface="太郎", @feature="太郎 名詞 タロウ
">
irb(main):011:0> enum.peek
=> #, stat=0, @surface="は", @feature="は 助詞 ハ
">
irb(main):013:0> enum.rewind
=> #:each>
irb(main):014:0> enum.each {|n| puts n.feature unless n.is_eos? }
太郎 名詞 タロウ
は 助詞 ハ
この 連体詞 コノ
本 名詞 ホン
を 助詞 ヲ
二 名詞 ニ
郎 名詞 ロウ
を 助詞 ヲ
見 動詞 ミ
た 助動詞 タ
女性 名詞 ジョセイ
に 助詞 ニ
渡し 動詞 ワタシ
た 助動詞 タ
。 記号 。
=> nil
```

0 件のコメント:

コメントを投稿