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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NLP基础笔记1——中文分词技术

發(fā)布時間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NLP基础笔记1——中文分词技术 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、簡介

中文分詞(Chinese Word Segmentation) 指的是將一個漢字序列切分成一個一個單獨的詞。分詞就是將連續(xù)的字序列按照一定的規(guī)范重新組合成詞序列的過程。

中文分詞是其他中文 (信息) 處理的基礎,搜索引擎、機器翻譯(MT)、語音合成、自動分類、自動摘要、自動校對等等,都需要用到分詞。

目前主流分詞方法:基于規(guī)則,基于統(tǒng)計以及二者混合。

基于規(guī)則的分詞:主要是人工建立詞庫也叫做詞典,通過詞典匹配的方式對句子進行劃分。其實現(xiàn)簡單高效,但是對未登陸詞很難進行處理。主要有正向最大匹配法FMM,逆向最大匹配法RMM以及雙向最大匹配法Bi-MM

def FMM_func(user_dict, sentence):"""正向最大匹配(FMM):param user_dict: 詞典:param sentence: 句子"""# 詞典中最長詞長度max_len = max([len(item) for item in user_dict])start = 0while start != len(sentence):index = start+max_lenif index>len(sentence):index = len(sentence)for i in range(max_len):if (sentence[start:index] in user_dict) or (len(sentence[start:index])==1):print(sentence[start:index], end='/')start = indexbreakindex += -1

def BMM_func(user_dict, sentence):"""反向最大匹配(BMM):param user_dict:詞典:param sentence:句子"""# 詞典中最長詞長度max_len = max([len(item) for item in user_dict])result = []start = len(sentence)while start != 0:index = start - max_lenif index < 0:index = 0for i in range(max_len):if (sentence[index:start] in user_dict) or (len(sentence[start:index])==1):result.append(sentence[index:start])start = indexbreakindex += 1for i in result[::-1]:print(i, end='/')

? 雙向最大匹配法:FMM和BMM兩種算法都分詞一遍,然后根據(jù)大顆粒度詞越多越好,非詞典詞和單字詞越少越好的原則,選取其中一種分詞結果輸出。

如:“我們在野生動物園玩”

正向最大匹配法,最終分詞結果為:“我們/在野/生動/物/園/玩”,其中,總分詞數(shù)6個,單字詞為3。

逆向最大匹配法,最終分詞結果為:“我們/在/野生動物園/玩”,其中,總分詞數(shù)4個,單字詞為2。

選擇標準:

  • 首先看兩種方法結果的分詞數(shù),分詞數(shù)越少越好;
  • 分詞數(shù)相同的情況下,看單字詞的數(shù)量,越少越好;
  • 因此最終輸出為逆向結果。

    https://zhuanlan.zhihu.com/p/103392455

    二、Jieba

    中文分詞有很多種,常見的比如有中科院計算所 NLPIR、哈工大 LTP、清華大學 THULAC 、斯坦福分詞器、Hanlp 分詞器、jieba 分詞、IKAnalyzer 等。

    官方:?https://github.com/fxsjy/jieba

    1、分詞

    三種分詞算法

    • 基于統(tǒng)計詞典,構造前綴詞典,基于前綴詞典對句子進行切分,得到所有切分可能,根據(jù)切分位置,構造一個有向無環(huán)圖(DAG);
    • 基于DAG圖,采用動態(tài)規(guī)劃計算最大概率路徑(最有可能的分詞結果),根據(jù)最大概率路徑分詞;
    • 對于新詞(詞庫中沒有的詞),采用有漢字成詞能力的 HMM 模型進行切分。

    支持三種分詞模式:

    • 精確模式,試圖將句子最精確地切開,適合文本分析;
    • 全模式,把句子中所有的可以成詞的詞語都掃描出來, 速度非常快,但是不能解決歧義;
    • 搜索引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,適合用于搜索引擎分詞。
    import jieba content = "現(xiàn)如今,機器學習和深度學習帶動人工智能飛速的發(fā)展,并在圖片處理、語音識別領域取得巨大成功。" # 1、精確 segs_1 = jieba.cut(content, cut_all=False) print("/".join(segs_1))#用lcut生成list segs_2 = jieba.lcut(content) print(segs_2)# 2、全模式 segs_3 = jieba.cut(content, cut_all=True) print("/".join(segs_3)) # 3、搜索引擎 segs_4 = jieba.cut_for_search(content) print("/".join(segs_4)) 1 現(xiàn)如今/,/機器/學習/和/深度/學習/帶動/人工智能/飛速/的/發(fā)展/,/并/在/圖片/處理/、/語音/識別/領域/取得/巨大成功/。['現(xiàn)如今', ',', '機器', '學習', '和', '深度', '學習', '帶動', '人工智能', '飛速', '的', '發(fā)展', ',', '并', '在', '圖片', '處理', '、', '語音', '識別', '領域', '取得', '巨大成功', '。']2 現(xiàn)如今/如今///機器/學習/和/深度/學習/帶動/動人/人工/人工智能/智能/飛速/的/發(fā)展///并/在/圖片/處理///語音/識別/領域/取得/巨大/巨大成功/大成/成功// 3 如今/現(xiàn)如今/,/機器/學習/和/深度/學習/帶動/人工/智能/人工智能/飛速/的/發(fā)展/,/并/在/圖片/處理/、/語音/識別/領域/取得/巨大/大成/成功/巨大成功/。

    lcut 生成 list

    jieba.cut 以及?jieba.cut_for_search?返回的結構都是一個可迭代的 Generator,可以使用 for 循環(huán)來獲得分詞后得到的每一個詞語(Unicode)。jieba.lcut 對 cut 的結果做了封裝,l 代表 list,即返回的結果是一個 list 集合。同樣的,用?jieba.lcut_for_search?也直接返回 list 集合。

    2、載入字典

    自定義添加詞到字典

    • jieba.add_word("深享網(wǎng)")
    • jieba.load_userdict('user_dict.txt')

    3、關鍵詞提取

    • 基于TF-IDF
    • 基于TextRank

    4、詞性標注

    jieba 可以很方便地獲取中文詞性,通過 jieba.posseg 模塊實現(xiàn)詞性標注。

    import jieba.posseg as psg content = "現(xiàn)如今,機器學習和深度學習帶動人工智能飛速的發(fā)展,并在圖片處理、語音識別領域取得巨大成功。" print([(x.word,x.flag) for x in psg.lcut(content)]) [('現(xiàn)如今', 't'), (',', 'x'), ('機器', 'n'), ('學習', 'v'), ('和', 'c'), ('深度', 'ns'), ('學習', 'v'), ('帶動', 'v'), ('人工智能', 'n'), ('飛速', 'n'), ('的', 'uj'), ('發(fā)展', 'vn'), (',', 'x'), ('并', 'c'), ('在', 'p'), ('圖片', 'n'), ('處理', 'v'), ('、', 'x'), ('語音', 'n'), ('識別', 'v'), ('領域', 'n'), ('取得', 'v'), ('巨大成功', 'nr'), ('。', 'x')]

    三、準確分詞方法(以jieba、hanlp為例)

    1加載自定義字典

    當分詞工具分詞不準確時,需要加載自定義詞典!

    正則表達式常用函數(shù)

    ①re.sub用于替換字符串中的匹配項

    compile 函數(shù):用于編譯正則表達式,生成一個正則表達式( Pattern )對象

    findall 函數(shù):在字符串中找到正則表達式所匹配的所有子串,并返回一個列表,如果沒有找到匹配的,則返回空列表。

    注意: match 和 search 是匹配一次 findall 匹配所有。

    split 函數(shù):按照能夠匹配的子串將字符串分割后返回列表

    ?Python正則表達式

    2動態(tài)調(diào)整詞頻和字典順序

    當分詞字典的詞沖突,相互影響時,需要調(diào)整詞頻和字典順序!

    假設字典中定義的詞也可能被切開,此時需要調(diào)用jieba.suggest_freq函數(shù)

    ? ? ? 例如“臺中”,字典中定義了依然會分為“臺”,“中”

    ②使用hanlp時,需要用sort_dict_by_lenth.py來排序字典,不然會沖突

    ? ? ? 比如字典中有“數(shù)據(jù)挖掘算法工程師”和“數(shù)據(jù)挖掘”兩個,排序后就可以最長字符串匹配

    ③拓展:?基于詞典的中文分詞

    總結

    以上是生活随笔為你收集整理的NLP基础笔记1——中文分词技术的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 超级变态重口av番号 | 欧美精品一区二区三区在线播放 | 一级不卡| 性激烈视频在线观看 | 欧美三级韩国三级日本三斤在线观看 | 精品裸体舞一区二区三区 | 黄色草逼网站 | 国产视频一区在线观看 | 欧美成人午夜精品免费 | 福利视频第一页 | 巨胸喷奶水www久久久免费动漫 | 精品日韩中文字幕 | 国产精品久久..4399 | 中文免费在线观看 | 国产精品一区二区三区在线 | 久久精品欧美日韩精品 | 337p粉嫩大胆色噜噜噜 | 欧美性大战久久久久久久蜜桃 | 一级黄色片视频 | 依人成人| 17c在线视频 | 久草中文在线 | 美乳人妻一区二区三区 | 九九少妇 | 国产不卡在线观看 | 伊人色婷婷 | 欧美精品免费看 | 少妇高潮露脸国语对白 | 久久精品不卡 | 一级免费黄色 | 日本另类视频 | 综合色在线 | 国产精品av一区二区 | 日韩中文字幕在线免费观看 | 国产毛片久久 | 国产成人精品无码免费看在线 | 国产熟妇一区二区三区aⅴ网站 | 少妇人妻互换不带套 | 亚洲精品在线一区二区 | √天堂资源在线 | 日韩中文字幕精品视频 | 男ji大巴进入女人的视频 | 亚洲精品一区二区三区不卡 | 国产一级片一区 | 久久综合色鬼 | 五号特工组之偷天换月 | 国产91沙发系列 | 久久久免费看 | 国产精品久久精品三级 | 高跟鞋和丝袜猛烈xxxxxx | 噼里啪啦国语版在线观看 | 午夜视频免费观看 | 国产黄视频在线观看 | 国产精品高潮呻吟久久久 | 韩国中文字幕 | 中文字幕在线观看av | 国产日产精品一区二区三区 | 免费毛片在线播放免费 | 91久久精品一区二区三区 | av免费观看网站 | 天天搞天天搞 | 亚洲专区中文字幕 | 色中文字幕在线观看 | 精品女同一区二区 | 九七精品| 欧美久久天堂 | 亚洲av无码专区在线 | www.欧美在线观看 | 97超碰总站 | 亚洲天堂无吗 | 亚洲国产精品18久久久久久 | 五月天天 | 德国艳星videos极品hd | 国产精品亚洲一区二区三区 | 日韩aⅴ在线观看 | 欧美午夜精品理论片 | 国产精品久久久久久久成人午夜 | 久草日韩 | 亚洲一区二区在线免费 | 日韩一区二区免费在线观看 | 午夜67194| 国产福利视频 | 亚洲国产综合网 | 在线播放你懂得 | 疯狂做爰高潮videossex | 91精品国产色综合久久不卡粉嫩 | 熟妇无码乱子成人精品 | 精品国产欧美一区二区三区成人 | 夫妻性生活黄色片 | 日日噜夜夜噜 | 超碰人人插 | 中文在线а√天堂官网 | 18做爰免费视频网站 | 添女人荫蒂视频 | 五月情网 | 男女拍拍拍网站 | 自拍偷自拍亚洲精品播放 | 二十四小时在线更新观看 | 欧美日韩免费一区二区三区 |