自然語言處理中的常用術語 分詞

2021-10-03 03:14:20 字數 1286 閱讀 4034

在初步入門nlp過程中遇到很多摸不著頭腦的英文術語,在這裡做乙個不完整的自我總結:

除此之外補充幾個術語:

wordnet是乙個詞典。每個詞語(word)可能有多個不同的語義,對應不同的sense。而每個不同的語義(sense)又可能對應多個詞。

wordnet的使用方法

部落格介紹了幾種常見的分詞工具(中英文),nlp自然語言處理中英文分詞工具集錦與基本使用

未登入詞是指在驗證集或測試集出現了訓練集從來沒見到過的單詞。這種未登入詞對分詞,機器翻譯效能影響很大。

在做nlp的時候,很多時候我們會對語料做乙個預處理,生成語料的乙個字典。為了不讓字典太大,我們通常只會把出現頻次大於某個閾值的詞丟到字典裡邊,剩下所有的詞都統一編碼成#unk 。

由於第一種方法太過簡單,在機器翻譯領域,常見的方法有:給低頻詞再設定乙個back-off 表呀,當出現低頻詞的時候就去查表。這種方法簡單直接,若**ack-off做的很好的話,對低頻詞的翻譯會有很大的提公升;但是這種方法依賴於back-off表的質量,而且也沒法處理未登入詞問題。還有一種方法是不做word-level的東西,轉而做char-level的東西,也就是說既然以詞為物件進行建模會有未登入詞的問題,那麼我們以單個字母或單個漢字(中文)為物件建模就可以解決問題,因為不管是什麼詞它肯定是由若干個字母或者漢字(中文)組成的。這種方法的確可以從源頭解決未登入詞的問題,但是這種模型粒度太細,一般出來的效果不是特別好。

因此在文章neural machine translation of rare words with subword units中提出基於subword來生成詞典的方法,核心思想是綜合word-level和char-level的優勢,從語料中學習到所有詞裡邊頻次高的字串子串。然後把這些頻次高的字串子串收集起來形成乙個字典,這個字典裡邊,既存在word-level級別的子串,也存在char-level級別的子串。然後把這個字典用於模型的訓練。**在尋找頻次高的子串時,使用到了byte pair encoding演算法,只不過是把子串進行encoding而已。這個演算法也很簡單:每次合併在語料中同乙個詞裡面、相鄰的、出現頻率最高的兩個子串。decoding的時候,根據生成的詞彙表做相應的替換。

常用的subword分隔演算法有bpe和ulm,都是用來處理傳統詞表示方法無法解決的罕見詞和未登入詞的問題,具體課件知乎文章:深入理解nlp subword演算法

基於subword的字詞切分演算法主要有sentencepiece、subword-nmt、wordpiece,具體不同可以見如下**:

英文**:comparisons with other implementations

中文**:zhpmatrix blog

自然語言處理 結巴分詞

jieba分詞的三種模式的對比 import jieba text 在精確模式的基礎上對長詞再次劃分提高召回率 text list jieba.cut text,cut all true print 全模式 print join text list print 精確模式 text list jieb...

自然語言處理 漢語分詞

nlpir ictclas 漢語分詞系統 pynlpir 是該漢語分詞系統的 python 封裝版 安裝步驟 pip install pynlpir pynlpir update 官方文件的漢語分詞示例 import pynlpir pynlpir.open str 歡迎科研人員 技術工程師 企事業...

自然語言處理 中文分詞原理

1.1中文分詞概述 中文分詞 將乙個漢字序列分成乙個乙個的單獨的詞。分詞 將連續的字序列按照一定的規範重新組合成詞序列的過程。1.2中文分詞方法 一般有以下三類 基於詞典匹配的分詞方法 基於理解的分詞方法和基於統計的分詞方法。1.2.1 基於詞典 字串匹配 機械分詞法 匹配的分詞方法 按照一定的策略...