英文分詞的演算法和原理

2022-05-04 21:51:13 字數 1097 閱讀 1681

根據文件相關性計算公式

分詞質量對於基於詞頻的相關性計算是無比重要的

英文(西方語言)語言的基本單位就是單詞,所以分詞特別容易做,只需要3步:

根據空格/符號/段落 分隔,得到單詞組

過濾,排除掉stop word

提取詞幹

用正規表示式很容易

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.40, 82%

| \.\.\.            # ellipsis

| [.,;"'?():-_`]  # these are separate tokens

'''

re.findall(pattern,待分詞文字)

stopword就是類似a/an/and/are/then的這類高頻詞,高頻詞會對基於詞頻的算分公式產生極大的干擾,所以需要過濾

stemming有3大主流演算法

lucene 英文分詞自帶了3個stemming演算法,分別是

englishminimalstemmer

著名的 porter stemming

kstemmer

詞幹提取演算法並不複雜,要麼是一堆規則,要麼用對映表,程式設計容易,但是必須是這種語言的專家,了解構詞法才行啊

做計算機語言學研究才會涉及到lemmatization,我個人覺得做搜尋完全可以不考慮,stemming已經可以解決大問題了

參考

英文分詞和中文分詞

由於英語的基本組成單位就是詞,所以相對來說簡單很多。大致分為三步 3s 根據空格拆分單詞 split 排除停止詞 stop word 提取詞幹 stemming 1 根據空格拆分單詞 這一步是是最簡單的一步,英語的句子基本上就是由標點符號 空格和詞構成,那麼只要根據空格和標點符號將詞語分割成陣列即可...

英文分詞演算法 Porter stemmer

porter stemmer 並不是要把單詞變為規範的那種原來的樣子,它只是把很多基於這個單詞的變種變為某一種形式!換句話說,它不能保證還原到單詞的原本,也就是 created 不一定能還原到 create 但卻可以使 create 和 created 都得到 creat 比如我輸入 create ...

英文分詞 英文分詞處理中遇到的問題

之前一直和中文的自然語言處理打交道,最近因為工作關係需要進行英文相關的自然語言處理,本以為相對較難中文的nlp都搞的定,英文的還不是手到擒來 事實證明不同語系的nlp之間存在著較大的差異。中文雖然和拉丁語系的語音相比更為繁瑣,由拼音組成字音,再有字組成詞語,詞語組成句子文章等等等。但英語等拉丁語系語...