ぬゅぼうのPython日記【スクレイピングした文章から単語を学習する】
今日も今日とてPython日和。
うおおおおおおおおおお
初の自作GIFです。
↓前回↓
スクレイピング用のコードが書けたのでさっそくword_group関数
と組み合わせてまずは単語を拾い上げていきたいと思いマーーウ!!!
ちなみに、前回の時点ではweblioさんからスクレイピングした文章から
文法データの収集も同時にやっちゃおっかなと思ってたんですが…
それにはいくつか問題点が浮上しまして。
まず一つ一つの文章が短い!
辞書という媒体だと考えれば当然っちゃ当然ですけど、一文があまりにも簡潔でそれほど品詞ごとの前後関係が取りにくい。
例としてスクレイピングコードで『芋』という項目を取得してみマウ。
import func
print(func.scraping_weblio('芋'))
あ、書き忘れてたんですが今まで作った関数は全てfunc.py
というファイルにまとめて入れてあります。
なので一旦funcから関数を呼び出して使う形ですね。
ケチラが出力の一部です。
'1 植物の根や地下茎が肥大して、でんぷんなどの養分を蓄えているものの総称'
非常に簡潔でムダがない反面、
あまり日本語表現としての幅がないように思えますね…
(disってないですよ!!辞書としては素晴らしいと思います。)
そもそもスクレイピングしやすそうだからという理由で飛び付いてしまいましたけど、
辞書ってモンは文章を読ませる媒体じゃないんで
文法の分析はしにくいんですよね…
ということで、単語だけ拾い上げていくとしますね。
先ほどのコードに少し書き足すだけでできちゃいます!
import func
for sentence in func.scraping_weblio('芋'):
func.word_group(sentence)
print(func.txtfile('word_data.txt'))
さあどうなるかな!
…と思ったらめちゃくちゃ長い出力が出てきた!!
丸々ここに載せることはできないのでスケール感だけ感じていただこうと思います。
import func
import ast
file=ast.literal_eval(func.txtfile('word_data.txt'))
print('単語カテゴリ数')
print(len(file.keys()))
print('単語数')
print(sum([len(v) for v in file.values()]))
出力はケチラ。
単語カテゴリ数
64
単語数
293
『芋』のページ一つだけで64の単語カテゴリ。
単語カテゴリと一言で言ってもピンと来ないと思うので一部抜粋しますね。
('形容詞', '自立', '*', '*', '形容詞・イ段', '基本形'),
('名詞', '一般', '*', '*', '*', '*'),
('記号', '括弧開', '*', '*', '*', '*'),
('名詞', 'サ変接続', '*', '*', '*', '*'),
('助詞', '連体化', '*', '*', '*', '*'),
('助詞', '並立助詞', '*', '*', '*', '*'),
('記号', '一般', '*', '*', '*', '*'),
('名詞', '数', '*', '*', '*', '*'),
('記号', '空白', '*', '*', '*', '*'),
('助詞', '格助詞', '一般', '*', '*', '*'),
('動詞', '自立', '*', '*', 'サ変・スル', '連用形')
これが64個並んでる感じですね。
詳しくはこの↓記事↓をご参照ください。
ざっくり言うとこのような分類で同じカテゴリに属する単語は相互に代替可能
なんじゃないか?というような話です。
そして293の単語!!
データの蓄積としては上々ですね。
さて…次はどうしようかな?
構想はちょいちょいあるんですけどね…
あ、せっかくだからさっきの記事に書いてた
『文章中の単語を代替して意味が通るか』って実験するコード作ってみるか。
次回はそれをしマーーウ!!
それでは!!
この記事が気に入ったらサポートをしてみませんか?