英文分詞和中文分詞

2021-08-14 06:31:20 字數 1584 閱讀 2405

由於英語的基本組成單位就是詞,所以相對來說簡單很多。

大致分為三步(3s):

根據空格拆分單詞(split)

排除停止詞(stop word)

提取詞幹(stemming)

1、根據空格拆分單詞

這一步是是最簡單的一步,英語的句子基本上就是由標點符號、空格和詞構成,那麼只要根據空格和標點符號將詞語分割成陣列即可。

如「nobody knows how ancient people started using fire」分割成。

2、排除停止詞

停止詞,是由英文單詞:stopword翻譯過來的,原來在英語裡面會遇到很多a,the,or等使用頻率很多的字或詞,常為冠詞、介詞、副詞或連詞等。如果搜尋引擎要將這些詞都索引的話,那麼幾乎每個**都會被索引,也就是說工作量巨大。可以毫不誇張的說句,只要是個英文**都會用到a或者是the。那麼這些英文的詞跟我們中文有什麼關係呢? 在中文**裡面其實也存在大量的stopword,我們稱它為停止詞。比如,我們前面這句話,「在」、「裡面」、「也」、「的」、「它」、「為」這些詞都是停止詞。這些詞因為使用頻率過高,幾乎每個網頁上都存在,所以搜尋引擎開發人員都將這一類詞語全部忽略掉。如果我們的**上存在大量這樣的詞語,那麼相當於浪費了很多資源。

常見停止詞請看附錄:

如去掉停止詞後得到

3、提取詞幹

同時我們可以將所有的大小寫統一。

處理成經過上面三個步驟基本上乙個英文句子就處理完了。

對於中文而言,詞是承載語義的最小單元,由詞構成語句,又由語句構成篇章。但是,中文文字是由連續的字序列構成,詞與詞之間是沒有天然的分隔符 ,所以中文分詞相對來說困難很多。中文分詞目前來說基本上都還是基於分詞用的詞典來進行分詞的,將字和字組成不同的詞然後放入詞典中查詢。

中文分詞面臨著相當多的挑戰,首當其衝的就是歧義問題,不同的分割方式會導致不同的意思。

如:結婚/的/和尚/未/結婚/的 和 結婚/的/和/尚未/結婚/的

還有個重要的挑戰就是未登入詞,用人話就是沒有收錄進詞典的詞,人名就是最簡單的例子,還有就是網友發明的詞,諸如:「草泥馬」、「不明覺厲」之類云云。

所以乙個好的分詞詞典是決定中文分詞質量的關鍵,還有就是做中文分詞的話必須經常更新、與時俱進。

大致可以將中文分詞演算法分為兩種:

1、詞典分詞

詞典分詞簡單來說就是直接將句子拆成字,然後字和字組合進入詞典中匹配,這種方式雖然簡單直接但是容易引起歧義問題。比如jieba分詞。

2、基於統計的分詞

通過人工標註,對中文建模然後將準備好的語料進行訓練,通過計算不同階段下出現的概率並選出概率最大的情況作為結果來進行分詞。

這種分詞方法雖然能盡量避免分詞導致的歧義,但卻需要耗費相當大的效能。

還有一種是基於語義,但是目前還沒有很好的方案所以姑且不議。

在常見的分詞中建議是使用第一種,並且將常見的、唯一的詞如地名、人名等等先單獨建個詞庫,分詞前先將這些詞提取出來然後再進行分詞。然後可以針對自身的情況的建乙個歧義糾正詞庫,將一些分詞結果進行糾正。

如分詞結果為「王/小明」(這個名字在未登入的情況下),但是在糾正詞庫中已經記錄了「王小明」,所以最終結果為「王小明」。

中文分詞 中文分詞及其應用

一 中文分詞原理 中文分詞是指將乙個漢字序列切分成乙個乙個單獨的詞。分詞就是將連續的字序列按照一定的規範重新組合成詞序列的過程。現有的分詞方法可分為三大類,分別是基於字串匹配的分詞方法 基於理解的分詞方法和基於統計的分詞方法。一 基於字串匹配的分詞方法 基於字串匹配的分詞方法又稱機械分詞方法,它是按...

Python 英文分詞

pattern r x set flag to allow verbose regexps a z abbreviations,e.g.u.s.a.w w words with optional internal hyphens d d currency and percentages,e.g.12...

最小分詞(中文分詞)

中文分詞一般有下面幾種方法 1 基於字串匹配的分詞方法 1 正向最大匹配法 由左到右的方向 2 逆向最大匹配法 由右到左的方向 3 最少切分 使每一句中切出的詞數最小 這幾種方法一般都是通過 字典 來實現的,比如 中國航天 應邀到美國與太空總署 開會 其中字典如下 中國航天 這樣子 流掃瞄 中,第乙...