中文切詞

中文切詞

中文切詞(又稱中文分詞,Chinese Word Segmentation)指的是將一個漢字序列切分成一個一個單獨的詞。中文分詞是文本挖掘的基礎,對於輸入的一段中文,成功的進行中文分詞,可以達到電腦自動識別語句含義的效果。這種方法又叫做機械分詞方法,它是按照一定的策略將待分析的漢字串與一個 “充分大的”機器詞典中的詞條進行配,若在詞典中找到某個字元串,則匹配成功(識別出一個詞)。

基本介紹

  • 中文名:中文切詞
  • 外文名:Chinese Word Segmentation
  • 性質:一個漢字序列切分成單獨的詞
  • 重要性:文本挖掘的基礎
簡介,分類方法,分詞中的難題,常見中文分詞,庖丁解牛分詞,

簡介

中文切詞(又稱中文分詞,Chinese Word Segmentation)指的是將一個漢字序列切分成一個一個單獨的詞。中文分詞是文本挖掘的基礎,對於輸入的一段中文,成功的進行中文分詞,可以達到電腦自動識別語句含義的效果。
中文分詞技術屬於自然語言處理技術範疇,對於一句話,人可以通過自己的知識來明白哪些是詞,哪些不是詞,但如何讓計算機也能理解?其處理過程就是分詞算法。
現有的分詞算法可分為三大類:基於字元串匹配的分詞方法、基於理解的分詞方法和基於統計的分詞方法。
中文分詞的緣起
之所以存在中文分詞技術,是由於中文在基本文法上有其特殊性,具體表現在:
1、與英文為代表的拉丁語系語言相比,英文以空格作為天然的分割符,而中文不存在
例句:“Knowledge is power“ , 可自然分割為 Knowledge/ is/ power 三個詞,每個詞能獨立表義
而中文裡:知識就是力量 , 由於缺少分隔設定,無法進行符合漢字表義的切分:知識/ 就是/ 力量
2、在中文裡,“詞”比“單字”的表義能力更強
現代漢語的基本表達單元為“詞”,以雙字或者多字居多,其單獨切分後難以獨自表義
例如:機械工程,基本語義單元為“機械”和“工程”,如果按單子切分為“機”、“械”、“工”、“程”,則這些單字不符合人對中文語義的理解,因此不符合需求。

分類方法

基於字元串匹配的分詞方法
這種方法又叫做機械分詞方法,它是按照一定的策略將待分析的漢字串與一個 “充分大的”機器詞典中的詞條進行配,若在詞典中找到某個字元串,則匹配成功(識別出一個詞)。按照掃描方向的不同,串匹配分詞方法可以分為正向匹配和逆向匹配;按照不同長度優先匹配的情況,可以分為最大(最長)匹配和最小(最短)匹配;按照是否與詞性標註過程相結合,又可以分為單純分詞方法和分詞與標註相結合的一體化方法。常用的幾種機械分詞方法如下:
1)正向最大匹配法(由左到右的方向);
2)逆向最大匹配法(由右到左的方向);
3)最少切分(使每一句中切出的詞數最小);
4)雙向最大匹配法(進行由左到右、由右到左兩次掃描)
還可以將上述各種方法相互組合,例如,可以將正向最大匹配方法和逆向最大匹配方法結合起來構成雙向匹配法。由於漢語單字成詞的特點,正向最小匹配和逆向最小匹配一般很少使用。一般說來,逆向匹配的切分精度略高於正向匹配,遇到的歧義現象也較少。統計結果表明,單純使用正向最大匹配的錯誤率為1/169,單純使用逆向最大匹配的錯誤率為1/245。但這種精度還遠遠不能滿足實際的需要。實際使用的分詞系統,都是把機械分詞作為一種初分手段,還需通過利用各種其它的語言信息來進一步提高切分的準確率。
一種方法是改進掃描方式,稱為特徵掃描或標誌切分,優先在待分析字元串中識別和切分出一些帶有明顯特徵的詞,以這些詞作為斷點,可將原字元串分為較小的串再來進機械分詞,從而減少匹配的錯誤率。另一種方法是將分詞和詞類標註結合起來,利用豐富的詞類信息對分詞決策提供幫助,並且在標註過程中又反過來對分詞結果進行檢驗、調整,從而極大地提高切分的準確率。
對於機械分詞方法,可以建立一個一般的模型,在這方面有專業的學術論文,這裡不做詳細論述。
基於理解的分詞方法
這種分詞方法是通過讓計算機模擬人對句子的理解,達到識別詞的效果。其基本思想就是在分詞的同時進行句法、語義分析,利用句法信息和語義信息來處理歧義現象。它通常包括三個部分:分詞子系統、句法語義子系統、總控部分。在總控部分的協調下,分詞子系統可以獲得有關詞、句子等的句法和語義信息來對分詞歧義進行判斷,即它模擬了人對句子的理解過程。這種分詞方法需要使用大量的語言知識和信息。由於漢語語言知識的籠統、複雜性,難以將各種語言信息組織成機器可直接讀取的形式,因此目前基於理解的分詞系統還處在試驗階段。
基於統計的分詞方法
從形式上看,詞是穩定的字的組合,因此在上下文中,相鄰的字同時出現的次數越多,就越有可能構成一個詞。因此字與字相鄰共現的頻率或機率能夠較好的反映成詞的可信度。可以對語料中相鄰共現的各個字的組合的頻度進行統計,計算它們的互現信息。定義兩個字的互現信息,計算兩個漢字X、Y的相鄰共現機率。互現信息體現了漢字之間結合關係的緊密程度。當緊密程度高於某一個閾值時,便可認為此字組可能構成了一個詞。這種方法只需對語料中的字組頻度進行統計,不需要切分詞典,因而又叫做無詞典分詞法或統計取詞方法。但這種方法也有一定的局限性,會經常抽出一些共現頻度高、但並不是詞的常用字組,例如“這一”、“之一”、 “有的”、“我的”、“許多的”等,並且對常用詞的識別精度差,時空開銷大。實際套用的統計分詞系統都要使用一部基本的分詞詞典(常用詞詞典)進行串匹配分詞,同時使用統計方法識別一些新的詞,即將串頻統計和串匹配結合起來,既發揮匹配分詞切分速度快、效率高的特點,又利用了無詞典分詞結合上下文識別生詞、自動消除歧義的優點。
到底哪種分詞算法的準確度更高,目前並無定論。對於任何一個成熟的分詞系統來說,不可能單獨依靠某一種算法來實現,都需要綜合不同的算法。筆者了解,海量科技的分詞算法就採用“複方分詞法”,所謂複方,相當於用中藥中的複方概念,即用不同的藥材綜合起來去醫治疾病,同樣,對於中文詞的識別,需要多種算法來處理不同的問題。

分詞中的難題

目前在自然語言處理技術中,中文處理技術比西文處理技術要落後很大一段距離,許多西文的處理方法中文不能直接採用,就是因為中文必需有分詞這道工序。中文分詞是其他中文信息處理的基礎,搜尋引擎只是中文分詞的一個套用。其他的比如機器翻譯(MT)、語音合成、自動分類、自動摘要、自動校對等等,都需要用到分詞。因為中文需要分詞,可能會影響一些研究,但同時也為一些企業帶來機會,因為國外的計算機處理技術要想進入中國市場,首先也是要解決中文分詞問題。在中文研究方面,相比外國人來說,中國人有十分明顯的優勢。
分詞準確性對搜尋引擎來說十分重要,但如果分詞速度太慢,即使準確性再高,對於搜尋引擎來說也是不可用的,因為搜尋引擎需要處理數以億計的網頁,如果分詞耗用的時間過長,會嚴重影響搜尋引擎內容更新的速度。因此對於搜尋引擎來說,分詞的準確性和速度,二者都需要達到很高的要求。目前研究中文分詞的大多是科研院校,清華、北大、哈工大、中科院、北京語言學院、東北大學、IBM研究院、微軟中國研究院等都有自己的研究隊伍,而真正專業研究中文分詞的商業公司除了海量科技以外,幾乎沒有了。科研院校研究的技術,大部分不能很快產品化,而一個專業公司的力量畢竟有限,看來中文分詞技術要想更好的服務於更多的產品,還有很長一段路。

常見中文分詞

SCWS
Hightman開發的一套基於詞頻詞典的機械中文分詞引擎,它能將一整段的漢字基本正確的切分成詞。採用的是採集的詞頻詞典,並輔以一定的專有名稱,人名,地名,數字年代等規則識別來達到基本分詞,經小範圍測試大概準確率在 90% ~ 95% 之間,已能基本滿足一些小型搜尋引擎、關鍵字提取等場合運用。45Kb左右的文本切詞時間是0.026秒,大概是1.5MB文本/秒,支持PHP4和 PHP 5。
ICTCLAS
這可是最早的中文開源分詞項目之一,ICTCLAS在國內 973專家組組織的評測中活動獲得了第一名,在第一屆國際中文處理研究機構SigHan組織的評測中都獲得了多項第一名。ICTCLAS3.0分詞速度單機996KB/s,分詞精度98.45%,API不超過200KB,各種詞典數據壓縮後不到3M.ICTCLAS全部採用C/C++編寫,支持 Linux、FreeBSD及Windows系列作業系統,支持C/C++、C#、Delphi、Java等主流的開發語言。
HTTPCWS
HTTPCWS 是一款基於HTTP協定的開源中文分詞系統,目前僅支持Linux系統。HTTPCWS 使用“ICTCLAS 3.0 2009共享版中文分詞算法”的API進行分詞處理,得出分詞結果。HTTPCWS 將取代之前的 PHPCWS 中文分詞擴展。

庖丁解牛分詞

Java 提供lucence 接口,僅支持Java語言。
CC-CEDICT:
一個中文詞典開源項目,提供一份以漢語拼音為中文輔助的漢英辭典,截至2009年2月8日,已收錄82712個單詞。其詞典可以用於中文分詞使用,而且不存在著作權問題。Chrome中文版就是使用的這個詞典進行中文分詞的。

相關詞條

熱門詞條

聯絡我們