新词发现
新詞發現
定義
新詞發現就是識別特定預料中不在字典中的詞,所以新詞又被稱為「未登錄詞」,比如微博語料中的網絡流行語,黑產語料中的黑話。
一般的做法是不依賴字典做無監督分詞,分好的詞減去已知字典,得到的就是新詞。這樣新詞發現就被轉換為分詞任務,或者說是一個識別預料中的詞的任務。
下面介紹幾種基于統計的判斷是否成詞的指標
1、詞頻
對語料完整切詞,比如對于一句話 "明天可能要下雨",以2grams, 3grams, 4grams 的方式切詞
2grams切分為:明天,天可,可能,能要,要下,下雨
3grams切分為:明天可,天可能,可能要,能要下,要下雨
4grams切分為:明天可能,天可能要,可能要下,能要下雨
統計上詞出現的次數,詞頻越高,越可能成詞。
2、凝固度
有一個兩字詞 (xy),(P(xy)) 代表詞 (xy) 出現的概率,凝固度的計算如下
[frac{P(xy)}{P(x)P(y)}
]
假如 (x) 和 (y) 相互獨立,那么 (P(xy) = P(x) * P(y)) ,凝固度接近于 1,當 (xy) 越容易成詞,(P(xy)) 相比于 (P(x) * P(y)) 會更大,凝固度就更大。
對于三字,四字詞呢,一般用多種分割方式的最小值作為多字詞的凝固度
[minleft(frac{P(xyz)}{P(x)P(yz)}, frac{P(xyz)}{P(xy)P(z)}ight)
]
一般使用中會對概率比值取對數,就變成點間互信息的概念
[PMI(xy) = log_{2}left(frac{P(xy)}{P(x)P(y)}ight)
]
當然取不取對數,在實際使用中區別不太大,都可以卡一個閾值來判斷凝固度是否達標。
基于詞頻和凝固度實現的新詞發現:https://kexue.fm/archives/3913
3、左右熵
熵:代表信息的混亂程度,熵越大,代表越混亂,信息量越大
當前詞的左熵是指,當前詞的左側出現的字的熵,也就是當前詞都可以應用在哪些字后面,應用越廣泛,越像一個詞。
比如"被子"這個詞,左側有可能是"疊、蓋、買、曬、晾",統計這些前置字出現的頻率,計算熵值,結果我們可知"被子"的熵值就挺大的
再比如 "日夢"的左側出現的字可能大概率就是"白",左熵較小,那么就認為"日夢"可能不容易單獨成詞,實際情況我們知道"白日夢"更適合做一個詞
右熵類似計算
左右熵衡量的是一個詞在外部的應用場景是否廣泛,熵越大,應用場景越多,越有可能成詞。
使用時可以取左右熵的最大值、最小值、均值來用,看具體使用場景
4、詞內熵
計算當前詞左側部分的右側對應的外部熵,熵越大,越不可能成詞
比如"被子"這個詞,看"被"字右側還可以是哪些字,計算一個熵出來,就是"被子"這個詞左部的右熵
相應的也可以計算右部的左熵
詞內熵利用熵信息來衡量不成詞的概率,與"凝固度"指標相反
來自一個反作弊博主:https://zhuanlan.zhihu.com/p/25499358
5、業務應用
xxxx
6、分詞延伸
新詞發現問題可以轉化為分詞問題。分詞問題的兩類解法
6.1、基于統計的分詞
基于字典的前向匹配法、最少成詞法、最大概率法
考慮馬爾可夫假設,基于語言模型的分詞最大概率法
結論:效果已經較好,提升空間較小
6.2、轉換為序列標注問題
考慮n-grams文本標注,標簽有n個,以n=4舉例
f: 單子詞或者多字詞的首字
s: 詞的第二個字
t: 詞的第三個字
other: 詞的第四個字
那么分詞問題就轉化成了序列標注問題,標注的標簽就是以上四種,序列標注是比較成熟的問題了,可以用HHM 或者 LSTM來解決。
結論:利用神經網絡能識別更深層次的語義信息,還有一定的探索空間
蘇劍林基于HMM做的分詞:https://kexue.fm/archives/3922
蘇劍林基于雙向LSTM做的分詞:https://kexue.fm/archives/3924
7、參考資料
Matrix67的經典新詞發現博客:http://www.matrix67.com/blog/archives/5044
蘇劍林三步生成新詞:https://kexue.fm/archives/4256;更新版:https://kexue.fm/archives/6920
新詞發現相關工具:SmoothNLP、HanLP
總結
- 上一篇: 税务贷款什么意思
- 下一篇: TCP/UDP常见端口