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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

词法分析-中文分词技术-正向最大匹配法与逆向最大匹配法

發布時間:2025/4/16 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 词法分析-中文分词技术-正向最大匹配法与逆向最大匹配法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

詞法分析-中文分詞技術-正向最大匹配法與逆向最大匹配法

Type真是太帥了

于 2018-12-31 13:20:07 發布

1930
?收藏 1
分類專欄: 編程
版權

編程
專欄收錄該內容
15 篇文章0 訂閱
訂閱專欄
Long Time No See...

最近深受痛苦的折磨,這一年來所有的事跌宕起伏,如同一瞬,一個個打擊接踵而至,從年初的各種擦邊掛,到各種失敗,各種放棄,似乎沒有發生一個順心的事,不知道從什么時候起戾氣變得越來越重,更無與人說。不管如何,“盡吾志也而不能至者,可以無悔矣,其孰能譏之乎?”……

我決定重拾包袱,從最初開始,從現在開始……

因為考研耽誤了好多事,包括友誼,包括學習,在這就邊做實驗邊復習點這學期的知識。

詞法分析:把字符串序列轉化為單詞序列的過程,進行詞法分析的函數或程序叫作詞法分析器或掃描器。

例如:“XXXXXXXXXXX”->"X/XX/X/XX/X/X/X/X/X"

中文分詞技術:把一句話根據詞語字典切分為若干個詞語。方法大體分為三類:字符匹配法、理解法、統計法,字符匹配法包括正向最大匹配、逆向最大匹配、最少切分、雙向最大匹配等。

本次任務:給定字典,[‘研究’,’研究生’, ’生命’,’命’,’的’,‘起源’],使用正向最大匹配(Maximum Match Method,MM)和逆向最大匹配(Reverse Maximum Match Method,RMM)對“研究生命的起源”進行切分。

MM:

Step 1 假定分詞詞典中的最長詞有i個漢字字符,則用被處理的當前字串中的前i個字作為匹配字段,查找字典。

Step 2 若字典中存在這樣一個i字詞,則匹配成功;否則,失敗,將匹配字段中的最后一個字符去掉, 對剩下字串進行匹配。 Step 3 如此進行下去,直到匹配成功,即切分出一個詞或剩余字串長度為0。 不停的匹配,直到文檔被掃描完為止。

編程思路:第一步求詞典中最長分詞的長度,設為maxlen。設cobegin為源字符串時匹配的開始字符下標。cobegin初始為0,設coend為字符串的末尾下標的下一個,即coend=len(s)

第二步,設切分的大小為size,初始化為maxlen,如果切下的s[cobegin:cobegin+size]在字典中,則把切下的放在一個列表中,并cogebin=cobegin+size 且size重置為maxlen,否則size減1,重新匹配,當size為0且cobegin<coend 時,則表明無法將切分完畢;當cobegin>=coend時,退出循環。

代碼實現 MaxMatch.py

dic=['研究','研究生','生命','命','的','起源']
out=[]
s='研究生命的起源'
maxlen=0 #字典中最大分詞長度
for i in dic:
? ? if maxlen<len(i):
? ? ? ? maxlen=len(i)
cobegin=0 #剩余字符開始
coend=len(s) #剩余字符結束
size=maxlen #開始匹配長度
while cobegin<coend:
? ? ch=s[cobegin:cobegin+size]?
? ? if ch in dic:#匹配成功
? ? ? ? cobegin+=size
? ? ? ? out.append(ch)
? ? ? ? size=maxlen
? ? else: #匹配失敗
? ? ? ? size-=1
? ? if size==0:
? ? ? ? print("error")
? ? ? ? break
最后結果:

好像不太對的樣子,我意為自己寫錯了從網上復制了一個c++的代碼(忘了在哪個博客找到的),運行,還是這個結果:

MM.cpp:

#include<iostream>
#include<string>
using namespace std;
?
// 宏,計算數組個數
#define GET_ARRAY_LEN(array,len){len=(sizeof(array)/sizeof(array[0]));}
?
string dict[] = {"研究", "研究生", "生命", "命", "的","起源"};
?
// 是否為詞表中的詞或者是詞表中詞的前綴
bool inDict(string str)
{
? ? bool res = false;
? ? int i;
? ? int len = 0;
? ??
? ? GET_ARRAY_LEN(dict, len);
?
? ? for (i = 0; i<len; i++)
? ? {
? ? ? ? // 是否和詞表詞相等或者是詞表詞前綴
? ? ? ? if( str == dict[i].substr(0, str.length()))
? ? ? ? {
? ? ? ? ? ? res = true;
? ? ? ? }
? ? }
? ? return res;
}
?
?
int main()
{
? ? string sentence = "研究生命的起源";
? ? string word = "一";
? ? int wordlen = word.length();
? ??
? ? int i;
? ? string s1 = "";
? ??
? ? for (i = 0; i<sentence.length(); i = i+wordlen)
? ? {
? ? ? ? string tmp = s1 + sentence.substr(i, wordlen);
?
? ? ? ? if(inDict(tmp))
? ? ? ? {
? ? ? ? ? ? s1 = s1 + sentence.substr(i, wordlen);
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? cout<<"分詞結果:"<<s1<<endl;
? ? ? ? ? ? s1 = sentence.substr(i, wordlen);
? ? ? ? }
? ? }
? ? cout<<"分詞結果:"<<s1<<endl;
}
結果還是一樣:

RMM:原理和MM類似,唯一不同的時候匹配是倒著匹配(從字符串的最后開始),然后對最后切分的字段進行逆置即可。

ReMaxMatch.py:

import math
dic=['研究','研究生','生命','命','的','起源']
out=[]
s='研究生命的起源'
maxlen=0 #字典中最大分詞長度
for i in dic:
? ? if maxlen<len(i):
? ? ? ? maxlen=len(i)
cobegin=0 #剩余字符開始
coend=len(s) #剩余字符結束
size=maxlen #開始匹配長度
while cobegin<coend:
? ? ch=s[coend-size:coend]?
? ? if ch in dic:#匹配成功
? ? ? ? coend-=size
? ? ? ? out.append(ch)
? ? ? ? size=maxlen
? ? else: #匹配失敗
? ? ? ? size-=1
? ? if size==0:
? ? ? ? print("error")
? ? ? ? break
i=0
while i<math.floor(len(out)/2): #逆置
? ? str1=out[i]
? ? out[i]=out[len(out)-i-1]
? ? out[len(out)-i-1]=str1
? ? i+=1
結果:

兩者的差異:

正向匹配時會優先選擇匹配長度更長的單詞,但同一前綴的單詞并不是越長就越正確,逆向同理會匹配同一后綴匹配長度更長的單詞,兩者都有其局限性,需要做出一定的優化,比如使用最小切分法和雙向切分等。
————————————————
版權聲明:本文為CSDN博主「Type真是太帥了」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_36614557/article/details/85458057

總結

以上是生活随笔為你收集整理的词法分析-中文分词技术-正向最大匹配法与逆向最大匹配法的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 涩涩视频在线播放 | 欧洲精品视频在线 | 在线中文字幕av | 精品欧美视频 | julia一区二区三区中文字幕 | 国模私拍xvideos私拍 | 日日夜夜操操操 | 久久免费看少妇高潮 | 狠狠cao日日穞夜夜穞av | 日本国产一区 | 亚洲无人区码一码二码三码 | 一级全黄男女免费大片 | 综合在线观看 | 国产第一福利影院 | 亚洲男女视频 | 日韩av不卡在线 | caoprom在线视频 | 综合五月网 | 国产真人做爰毛片视频直播 | 美女爱爱视频 | 久久久久久久爱 | 特黄aaaaaaaaa毛片免 | 欧美麻豆 | 国产成人综合欧美精品久久 | 国产精品视频一二区 | 国产欧美日韩视频在线观看 | 色综合视频在线观看 | 在线观看小视频 | 91国内视频 | 天天插插插 | 男人影院在线观看 | 99热久久这里只有精品 | 国产91香蕉 | 国产艳俗歌舞表演hd | 亚洲一区二区网站 | 丰满熟妇被猛烈进入高清片 | 国产超碰人人爽人人做人人爱 | 在线a网站 | 日操操 | 超碰123 | 中文字幕亚洲一区 | 国产一级一片免费播放放a 丁香六月色 | 国产三级日本三级在线播放 | 18禁男女爽爽爽午夜网站免费 | 黑人vs日本人ⅹxxxhd | 黄网站欧美内射 | 中国老熟妇自拍hd发布 | 国产激情91 | 欧洲做受高潮免费看 | 第一宅男av导航入口 | 爱爱免费视频网站 | 伊人久久久久久久久久久 | 91精品啪在线观看国产线免费 | 贵族女沦为官妓h呻吟 | 日韩欧美一 | 日韩一区二区三区免费 | 久久精品伊人 | 日本呦呦| 日本羞羞网站 | 黄色av导航| 欧美精品大片 | 国产精品丝袜 | 黄色大片免费网站 | 久久久黄色片 | 亚洲一卡二卡在线 | 台湾佬久久 | 午夜99 | 嫩草嫩草嫩草嫩草 | 麻豆视频官网 | 国语对白自拍 | 欧美二区三区 | 亚洲av毛片 | 精品久久久久久久久久久久 | 黄网址在线 | 丝袜+亚洲+另类+欧美+变态 | 玩日本老头很兴奋xxxx | 肌肉猛男裸体gay网站免费 | 国产网站黄| 欧美成人乱码一二三四区免费 | 天堂网一区二区三区 | www天天操| 日本一区二区三区免费观看 | 日本少妇作爱视频 | 高清黄色一级片 | 亚洲av成人精品午夜一区二区 | 国产情侣久久久久aⅴ免费 caoporn成人 | 一级作爱视频 | 在线看av的网址 | 久久9精品区-无套内射无码 | 亚洲精品一| 看国产毛片 | 性久久久久 | heyzo朝桐光一区二区 | 奇米影视在线播放 | 人体内射精一区二区三区 | 久久久国产精品x99av | 成人免费版欧美州 | 国内一级视频 | 国产一级美女 |