一文看懂NLP裏的分詞 - Tokenization(中英文分詞區別+3 大難點+3 種典型方法)

本文首發自 easyAI - 產品經理的AI知識庫git

原文地址:《 一文看懂NLP裏的分詞-Tokenization(中英文區別+3大難點+3種典型方法)github

一文看懂分詞

分詞是 NLP 的基礎任務,將句子,段落分解爲字詞單位,方便後續的處理的分析。算法

本文將介紹分詞的緣由,中英文分詞的3個區別,中文分詞的3大難點,分詞的3種典型方法。最後將介紹中文分詞和英文分詞經常使用的工具。數據結構

什麼是分詞?

分詞是 天然語言理解 - NLP 的重要步驟。機器學習

分詞就是將句子、段落、文章這種長文本,分解爲以字詞爲單位的數據結構,方便後續的處理分析工做。工具

什麼是分詞?

爲何要分詞?

  1. 將複雜問題轉化爲數學問題

機器學習的文章 中講過,機器學習之因此看上去能夠解決不少複雜的問題,是由於它把這些問題都轉化爲了數學問題。學習

而 NLP 也是相同的思路,文本都是一些「非結構化數據」,咱們須要先將這些數據轉化爲「結構化數據」,結構化數據就能夠轉化爲數學問題了,而分詞就是轉化的第一步。spa

爲何要分詞?

  1. 詞是一個比較合適的粒度

詞是表達完整含義的最小單位。cdn

字的粒度過小,沒法表達完整含義,好比」鼠「能夠是」老鼠「,也能夠是」鼠標「。blog

而句子的粒度太大,承載的信息量多,很難複用。好比」傳統方法要分詞,一個重要緣由是傳統方法對遠距離依賴的建模能力較弱。」

詞是合適的粒度

3. 深度學習時代,部分任務中也能夠「分字」

深度學習時代,隨着數據量和算力的爆炸式增加,不少傳統的方法被顛覆。

分詞一直是 NLP 的基礎,可是如今也不必定了,感興趣的能夠看看這篇論文:《Is Word Segmentation Necessary for Deep Learning of Chinese Representations?》。

Is Word Segmentation Necessary for Deep Learning of Chinese Representations?

不過在一些特定任務中,分詞仍是必要的。如:關鍵詞提取、命名實體識別等。

中英文分詞的3個典型區別

中英文分詞的3個典型區別

區別1:分詞方式不一樣,中文更難

英文有自然的空格做爲分隔符,可是中文沒有。因此如何切分是一個難點,再加上中文裏一詞多意的狀況很是多,致使很容易出現歧義。下文中難點部分會詳細說明。

區別2:英文單詞有多種形態

英文單詞存在豐富的變形變換。爲了應對這些複雜的變換,英文NLP相比中文存在一些獨特的處理步驟,咱們稱爲詞形還原(Lemmatization)和詞幹提取(Stemming)。中文則不須要

詞性還原:does,done,doing,did 須要經過詞性還原恢復成 do。

詞幹提取:cities,children,teeth 這些詞,須要轉換爲 city,child,tooth」這些基本形態

區別3:中文分詞須要考慮粒度問題

例如「中國科學技術大學」就有不少種分法:

  • 中國科學技術大學
  • 中國 \ 科學技術 \ 大學
  • 中國 \ 科學 \ 技術 \ 大學

粒度越大,表達的意思就越準確,可是也會致使召回比較少。因此中文須要不一樣的場景和要求選擇不一樣的粒度。這個在英文中是沒有的。

中文分詞的3大難點

中文分詞的3大難點

難點 1:沒有統一的標準

目前中文分詞沒有統一的標準,也沒有公認的規範。不一樣的公司和組織各有各的方法和規則。

難點 2:歧義詞如何切分

例如「兵乓球拍賣完了」就有2種分詞方式表達了2種不一樣的含義:

  • 乒乓球 \ 拍賣 \ 完了
  • 乒乓 \ 球拍 \ 賣 \ 完了

難點 3:新詞的識別

信息爆炸的時代,三天兩頭就會冒出來一堆新詞,如何快速的識別出這些新詞是一大難點。好比當年「藍瘦香菇」大火,就須要快速識別。

3種典型的分詞方法

3種典型的分詞方法

分詞的方法大體分爲 3 類:

  1. 基於詞典匹配
  2. 基於統計
  3. 基於深度學習

給予詞典匹配的分詞方式

優勢:速度快、成本低

缺點:適應性不強,不一樣領域效果差別大

基本思想是基於詞典匹配,將待分詞的中文文本根據必定規則切分和調整,而後跟詞典中的詞語進行匹配,匹配成功則按照詞典的詞分詞,匹配失敗經過調整或者從新選擇,如此反覆循環便可。表明方法有基於正向最大匹配和基於逆向最大匹配及雙向匹配法。

基於統計的分詞方法

優勢:適應性較強

缺點:成本較高,速度較慢

這類目前經常使用的是算法是HMM、CRF、SVM、深度學習等算法,好比stanford、Hanlp分詞工具是基於CRF算法。以CRF爲例,基本思路是對漢字進行標註訓練,不只考慮了詞語出現的頻率,還考慮上下文,具有較好的學習能力,所以其對歧義詞和未登陸詞的識別都具備良好的效果。

基於深度學習

優勢:準確率高、適應性強

缺點:成本高,速度慢

例若有人員嘗試使用雙向LSTM+CRF實現分詞器,其本質上是序列標註,因此有通用性,命名實體識別等均可以使用該模型,據報道其分詞器字符準確率可高達97.5%。

常見的分詞器都是使用機器學習算法和詞典相結合,一方面可以提升分詞準確率,另外一方面可以改善領域適應性。

中文分詞工具

下面排名根據 GitHub 上的 star 數排名:

  1. Hanlp
  2. Stanford 分詞
  3. ansj 分詞器
  4. 哈工大 LTP
  5. KCWS分詞器
  6. jieba
  7. IK
  8. 清華大學THULAC
  9. ICTCLAS

英文分詞工具

  1. Keras
  2. Spacy
  3. Gensim
  4. NLTK

總結

分詞就是將句子、段落、文章這種長文本,分解爲以字詞爲單位的數據結構,方便後續的處理分析工做。

分詞的緣由:

  1. 將複雜問題轉化爲數學問題
  2. 詞是一個比較合適的粒度
  3. 深度學習時代,部分任務中也能夠「分字」

中英文分詞的3個典型區別:

  1. 分詞方式不一樣,中文更難
  2. 英文單詞有多種形態,須要詞性還原和詞幹提取
  3. 中文分詞須要考慮粒度問題

中文分詞的3大難點

  1. 沒有統一的標準
  2. 歧義詞如何切分
  3. 新詞的識別

3個典型的分詞方式:

  1. 基於詞典匹配
  2. 基於統計
  3. 基於深度學習

產品經理的 AI 知識庫
相關文章
相關標籤/搜索