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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

python语言入门r_小结:jieba分词的Python与R语言基础用法介绍

發布時間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python语言入门r_小结:jieba分词的Python与R语言基础用法介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當前瀏覽器不支持播放音樂或語音,請在微信或其他瀏覽器中播放

人們說話不是一個詞一個詞崩出來的,文章也就由句子組成。要想讓機器識別美文,體會中華名族漢語的博大精深,不是不可能。但是,首先需要將其轉化成其可以識別的模式——詞語。分詞是自然語言處理(NLP)中最底層、最基本的模塊,分詞精度的好壞將直接影響文本分析的結果。

這里介紹著名的分詞方法:結巴分詞以及基本分詞方法在Python和R語言中的用法。

Python中的結巴分詞

Python中文分詞的三種常用模式

精確模式:

全模式

搜索引擎模式

三種模式默認都采用隱馬爾科夫模型分詞;同時,結巴分詞支持繁體分詞和自定義字典方法。

導入模塊:import jieba

(1)、精確模式:

>>> test = '十堰有道家發源地武當山'

>>> cut1 = jieba.cut(test)

>>> type(cut1)

>>> print('精確分詞結果:',' '.join(cut1))

Cut1不能直接查看,‘ ‘.join(cut1)函數指用空格分開cut1里面的元素,然后通過print()函數才能查看。

精確分詞結果: 十堰 有 道家 發源地 武當山

(2)、全模式:

>>> cut2 = jieba.cut(test,cut_all = True)

>>> print('全模式分詞結果:',' '.join(cut2))

全模式分詞結果: 十堰 有 道家 發源 發源地 源地 武當 武當山

把所有可能的詞都考慮進來了。“精確模式”其實有默認參數cut_all = False。顯然,全模式不管分詞后意思會不會有歧義,只管快速分出所有可能的詞,不適合做文本分析。

(3)、搜索引擎模式:

>>> cut3 = jieba.cut_for_search(test)

>>> print('搜索引擎模式分詞結果:',' '.join(cut3))

搜索引擎模式分詞結果: 十堰 有 道家 發源 源地 發源地 武當 武當山

搜索引擎模式也會給出所有可能的分詞結果,但是搜索引擎模式對于詞典中不存在的詞,比如一些很少見、新詞,卻能給出正確的分詞結果。

添加自定義詞典

Path = ‘詞典路徑’

jieba.load_userdict (path2)

然后分詞即可。

提取關鍵詞

對于一篇文章,提取關鍵詞,比如指定提取5個關鍵詞:

jieba.analyse.extract_tags(dat,topK = 5)

注意:親測,詞典一般是.txt,默認是ASCII格式,應該另存為utf8模式,為什么?——有中文。其實,幫助文檔里面有的。

更多用法:help('jieba')獲得更多詳細介紹。

R語言結巴分詞

"結巴"中文分詞的R語言版本,支持最大概率法,隱式馬爾科夫模型,索引模型,混合模型,共四種分詞模式,同時有詞性標注,關鍵詞提取,文本Simhash相似度比較等功能。

包的下載與安裝:

>install.packages('jiebaRD')

>install.packages('jiebaR')

> library(jiebaRD)

> library(jiebaR)

分詞

> test

首先需要建立分詞引擎

> seg

這里“<=”表示分詞運算符

> seg<=test

[1] "革命" "尚未" "成功" "同志" "仍" "需" "努力"

與下面這句效果一樣

> segment(test,seg)

[1] "革命" "尚未" "成功" "同志" "仍" "需" "努力"

也就是有兩種寫法:

(1)、seg<=test

(2)、segment(test,seg)

后面的類似都有兩種寫法。

詞性標注:

可以使tag來進行分詞和詞性標注, 詞性標注使用混合模型分詞,標注采用和 ictclas 兼容的標記法。

>seg

> test

> segment(test,seg)

vn????? d????? a????? n???? zg????? v???? ad

"革命" "尚未" "成功" "同志"?? "仍"?? "需" "努力"

這里seg <= test也是一樣的,后面一樣有這樣寫法,只寫一種,不再強調指出。

關鍵詞提取:

關鍵詞提取所使用逆向文件頻率(IDF)文本語料庫可以切換成自定義語料庫的路徑,使用方法與分詞類似。topn參數為關鍵詞的個數,這里只提取一個關鍵詞:

> seg2

> keywords(test,seg2)

6.13553

"同志"

Simhash 與海明距離:

對中文文檔計算出對應的simhash值。simhash是谷歌用來進行文本去重的算法,現在廣泛應用在文本處理中。Simhash引擎先進行分詞和關鍵詞提取,后計算Simhash值和海明距離。

> test

> seg3

> simhash(test,seg3)

$simhash

[1] "13489182016966018967"

$keyword

6.13553 6.0229

"同志" "努力"

列表分詞:

支持一次性對多個列表(每個元素為文本)進行分詞。

test2

> apply_list(list(test,test2),seg)

[[1]]

vn????? d????? a????? n???? zg????? v???? ad

"革命" "尚未" "成功" "同志"?? "仍"?? "需" "努力"

[[2]]

ns??????? v??????? n??????? n?????? ns

"十堰"???? "有"?? "道家" "發源地" "武當山"

去除停止詞

>seg

還有一些其它設置,比如:

show_dictpath():顯示默認的詞典路徑,有jieba.dict.utf8(最大概率法)、hmm_model.utf8(隱式馬爾科夫模型),這兩個都是作為分詞需要用到的詞典;idf.utf8(TF-IDF算法)、stop_words.utf8(停用詞詞典),這兩個詞典是做關鍵詞抽取之用。

edit_dict(name = "user"):默認編輯用戶自定義詞典,還有system(可以打開編輯jieba.dict.utf8),stop_word(停用詞典)兩個參數值供選擇。

還有一些其它參數,具體參見help("jiebaR"),獲取更多詳細信息,學習利用幫助信息對于R語言的學習很重要。

其實,具體分詞引擎worker()怎么設置,我們可以幫助一下:help('worker')就會有:

worker(type = "mix", dict = DICTPATH, hmm = HMMPATH, user = USERPATH,idf = IDFPATH, stop_word = STOPPATH, write = T, qmax = 20, topn = 5,encoding = "UTF-8", detect = T, symbol = F, lines = 1e+05,output = NULL, bylines = F, user_weight = "max")

這里的一些參數:

type, 引擎類型

dict, 系統詞典

hmm, HMM模型路徑

user, 用戶詞典

idf, IDF詞典

stop_word, 關鍵詞用停止詞庫

write, 是否將文件分詞結果寫入文件,默認FALSE

qmax, 最大成詞的字符數,默認20個字符

topn, 關鍵詞數,默認5個

encoding, 輸入文件的編碼,默認UTF-8

detect, 是否編碼檢查,默認TRUE

symbol, 是否保留符號,默認FALSE

lines, 每次讀取文件的最大行數,用于控制讀取文件的長度。大文件則會分次讀取。

output, 輸出路徑

bylines, 按行輸出

user_weight, 用戶權重

歡迎留言、提建議,覺得不錯,記得點贊分享哦!

猜你可能喜歡

終于等到你了!

再華麗的詞藻也不過簡單的分享!

愛生活、愛原創、愛分享!

點擊【閱讀原文】獲得超值課程,降價40!

總結

以上是生活随笔為你收集整理的python语言入门r_小结:jieba分词的Python与R语言基础用法介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

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