日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

日语python怎么说_python+Mecab,一次性学会日语分词

發布時間:2023/12/15 python 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 日语python怎么说_python+Mecab,一次性学会日语分词 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

某天在磕N1聽力材料的時候,突然想到:“如果把聽力里的高頻詞都背熟,那我的日語聽力豈不是暢通無阻?”(我可真是個小機靈鬼)

實現思路就是“分詞+統計”,先寫一個日語詞頻統計小程序再說。

于是,說搞就搞。

日語分詞包

調研(google)了一下,發現日語也有類似jieba這樣的分詞包,用的比較多的是Mecab,類似的還有ChaSen、JUMAN這些,可以看下這幾個的對比。對于簡單的分詞統計來說,Mecab夠用了。

對日語分詞包感興趣的朋友可以參考這個:日文分詞器 Mecab 文檔 | 我愛自然語言處理?www.52nlp.cn

安裝Mecab

和python其他包的安裝類似,一行代碼解決問題

pip install mecab-python3

小試牛刀

裝完之后,在python里導入Mecab,順便看看是否成功安裝

import MeCab

如果沒問題的話,那就可以進入正題了,先找一句話來練練手。天気がいいから、散歩しましょう

text = "天気がいいから、散歩しましょう"

mecab_tagger = MeCab.Tagger("-Owakati")

mecab_tagger.parse(text)

輸出的結果是:

Out[1]:'天気 が いい から 、 散歩 し ましょ う \n'

可以看到,每個詞中間都被一個空格隔開了,這個時候再稍加處理一下,就可以得到一個分詞的list了:

In [2]:mecab_tagger.parse(text).split()[:-1]#[:-1]是為了把末尾的\n去掉

Out[2]: ['天気', 'が', 'いい', 'から', '、', '散歩', 'し', 'ましょ']

簡單的分詞就這樣完成了!

詞性區分和變形詞

在實際的應用場景中,往往不是這種簡單的分詞就可以的,比如有時候需要針對名詞進行詞頻統計,這就涉及到詞性的區分。

在上面的代碼中,我們用到了"-Owakati",這是一個只用于詞語分割的模式,全稱應該是「わかち書き」。比較常用的還有一個模式是"-Ochasen",舉個例子感受一下:

mecab_tagger = MeCab.Tagger("-Ochasen") # `-Owakati` 只做分詞

text = "ご飯を食べましたか"

print(mecab_tagger.parse(text))

輸出的結果是:

ご飯 ゴハン ご飯 名詞-一般

を ヲ を 助詞-格助詞-一般

食べ タベ 食べる 動詞-自立 一段 連用形

まし マシ ます 助動詞 特殊?マス 連用形

た タ た 助動詞 特殊?タ 基本形

か カ か 助詞-副助詞/並立助詞/終助詞

EOS

##原格式是'ご飯\tゴハン\tご飯\t名詞-一般\t\t\nを\tヲ\tを\t助詞-格助詞-一般\t\t\n食べ\tタベ\t食べる\t動詞-自立\t一段\t連用形\nまし\tマシ\tます\t助動詞\t特殊?マス\t連用形\nた\tタ\tた\t助動詞\t特殊?タ\t基本形\nか\tカ\tか\t助詞-副助詞/並立助詞/終助詞\t\t\nEOS\n'

從上面的結果可以看到,輸出的內容包括:分詞結果、讀音、原形詞、詞性等各類信息,基本上可以滿足日常需求了。這里面我個人比較常用的是詞性+原形詞,尤其是原形詞。畢竟大家都知道,日語里各種動詞變形簡直要了老命,而在做詞頻統計的時候直接根據原形詞統計會方便很多,也可以算是數據清洗的一種方式。

可以根據自己的需要選擇都需要哪些信息,以下是代碼示例

mecab_tagger = MeCab.Tagger("-Ochasen") #注意選定需要的模式

#自定義分詞輸出的格式

def format_tag_result(x):

pieces = []

for i in x.splitlines()[:-1]: #結尾的"EOS"順手去掉

i = i.split()

pieces.append((i[0], i[-1]))#選擇需要的內容

return pieces

text = "天気がいいから、散歩しましょう"

print(format_tag_result(mecab_tagger.parse(text)))

輸出的結果:

[('天気', '名詞-一般'), ('が', '助詞-格助詞-一般'), ('いい', '基本形'), ('から', '助詞-接続助詞'), ('、', '記號-読點'), ('散歩', '名詞-サ変接続'), ('し', '連用形'), ('ましょ', '未然ウ接続'), ('う', '基本形')]

好了,到這里為止,關于Mecab的基本用法就介紹完了。

一個栗子:N考真題文本分詞統計

找了一份歷年聽力真題的txt文本,進行高頻詞統計。

"""

Created on Sun Apr 12 11:44:30 2020

@author: chenlufan

"""

import MeCab

import pandas as pd

file_in = open('test.txt')

f_line = file_in.read()

mecab_tagger = MeCab.Tagger("-Ochasen")

result=mecab_tagger.parse(f_line)

my_list = []

for i in result.splitlines()[:-1]:

i = i.split()

try:

v = (i[2], i[1], i[-1])

except:

pass

my_list.append(v)

word_dict = {}

word_sub = {}

word_pro={}

for i in my_list:

if i[-1].split('-')[0] not in ['助詞','記號']:

if i[0] not in word_dict:

word_dict[i[0]]=1

word_sub[i[0]]=i[-1]

word_pro[i[0]]=i[1]

else:

word_dict[i[0]] =word_dict[i[0]]+1

df =pd.DataFrame({"fre":word_dict,'pro':word_pro,'sub':word_sub})

df=df[df.fre>1]

df=df.sort_values(by=['fre'],ascending=False)

df.to_csv('N1聽力分詞.csv')

輸出的結果(參考):

結語

之所以寫這篇文章,是因為正好把兩個熟悉的東西結合到了一起——python和日語。學了很多東西之后,現在漸漸開始感受到跨學科產生的新樂趣。不過不管怎么說,更重要的是有趣的想法,工具只是幫助夢想照進現實而已。

以上。

總結

以上是生活随笔為你收集整理的日语python怎么说_python+Mecab,一次性学会日语分词的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。