自然语言处理——分词系统(正向最大匹配法)
算法分析
正向最大匹配法,對于輸入的一段文本從左至右、以貪心的方式切分出當前位置上長度最大的詞。正向最大匹配法是基于詞典的分詞方法,其分詞原理是:單詞的顆粒度越大,所能表示的含義越確切。該算法主要分兩個步驟:
該算法主要分為兩個步驟:
1、一般從一個字符串的開始位置,選擇一個最大長度的詞長的
片段,如果序列不足最大詞長,則選擇全部序列。
2、首先看該片段是否在詞典中,如果是,則算為一個分出來的詞,如果不是,則從右邊開始,減少一個字符,然后看短一點的這個片段是否在詞典中,依次循環,逐到只剩下一個字。
3、序列變為第2步驟截取分詞后,剩下的部分序列
接下來通過一個實力給大家講解具體操作。
形象化演示
首先我們需要選取一個最大的截取長度,通常我們選取詞典中單個分詞的最大長度,在如下案例中,最長的分詞為(中國人)長度為三,那我們每次就取三個字符來進行分詞
從左側開始選中前三個字符進入帶分序列
判斷此時該序列是否存在于給定的詞典中。很遺憾“我是中”不在詞典中,那么從右側開始將最后一個字符從待分序列中刪去
很遺憾,“我是”依然不在分詞詞典中,繼續從右側刪去字符
如上圖所示,若待分序列的長度為1,則判定為單個詞,將其存入已分列表中,并從待分序列中刪除,在剩余的序列中重新組建待分序列,繼續下一輪分詞
經過幾輪循環,所有待分序列長度為零,得到了一個分詞結果,如下圖所示
代碼實現
dict.txt文件(在這里只是展示了簡單版的詞典,可以自己制作任意詞組或者從網站下載)
效果展示
輸入序列:我是中國人,我熱愛我的祖國
分詞結果:我/是/中國人/,/我/熱愛/我/的/祖國/和/人民
總結
以上是生活随笔為你收集整理的自然语言处理——分词系统(正向最大匹配法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt编译报 undefined vtab
- 下一篇: 微信小程序毕业设计 基于微信景区景点旅游