在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python  網(wǎng)絡(luò)安全/ jieba英文空格分詞問題

jieba英文空格分詞問題

1.對于關(guān)鍵詞存在空格或者特殊符號的情況下,jieba無法分出該詞

2.在github上找到了一個解決方案,修改jieba源碼
__init__.py
免費分享,造損免責(zé)。
打開默認(rèn)詞典(根目錄)或自定義詞典,把所有用來間隔詞頻和詞性的空格間隔符改成@@
(選用@@是因為一般關(guān)鍵詞里遇到這個分隔符的幾率比較小吧)

繼續(xù),打開jieba根目錄下init.py

搜索
re_han_default = re.compile("([\u4E00-\u9FD5a-zA-Z0-9+#&\._]+)", re.U)
改成
re_han_default = re.compile("(.+)", re.U)

搜索
re_userdict = re.compile('^(.+?)( [0-9]+)?( [a-z]+)?$', re.U)
改成
re_userdict = re.compile('^(.+?)(\u0040\u0040[0-9]+)?(\u0040\u0040[a-z]+)?$', re.U)

搜索
word, freq = line.split(' ')[:2]
改成
word, freq = line.split('\u0040\u0040')[:2]

補充:若用的全模式繼續(xù)改。
搜索
re_han_cut_all = re.compile("([\u4E00-\u9FD5]+)", re.U)
改成
re_han_cut_all = re.compile("(.+)", re.U)

但是這樣導(dǎo)致分詞的結(jié)果出現(xiàn)大量的emoji表情或者不需要的 類似 =,()的符號,

3.期望輸出

只想讓jieba能夠識別自定義詞中存在 空格的中英文關(guān)鍵詞 或者以 -連接的關(guān)鍵詞并且去除其他特殊字符比如emoji等表情符 該怎么修改呢?

string = 'my dog is a happy dog'
jieba.add_word('happy dog')

jieba.cut(my dog is a happy dog)

outputs: ['my','dog','is','a','happy','dog']

期望輸出: ['my','dog','is','a','happy dog']

對正則表達(dá)式實在頭大,希望有經(jīng)驗的大佬能告訴我有什么辦法...

回答
編輯回答
我不懂

只需要往相應(yīng)的正則表達(dá)式添加空格即可,如

-re_han_default = re.compile("([\u4E00-\u9FD5a-zA-Z0-9+#&\._%]+)", re.U)
+re_han_default = re.compile("([\u4E00-\u9FD5a-zA-Z0-9+#&\._% ]+)", re.U)

示例

In [1]: import re

In [2]: import jieba

In [3]: s = 'my dog is a happy dog'

In [4]: list(jieba.cut(s))
Out[4]: ['my', ' ', 'dog', ' ', 'is', ' ', 'a', ' ', 'happy', ' ', 'dog']

In [5]: jieba.re_han_default = re.compile("([\u4E00-\u9FD5a-zA-Z0-9+#&\._% ]+)", re.U)

In [6]: jieba.add_word('happy dog')

In [7]: list(jieba.cut(s))
Out[7]: ['my', ' ', 'dog', ' ', 'is', ' ', 'a', ' ', 'happy dog']
2017年1月5日 15:56
編輯回答
拮據(jù)

英文的話還是可以考慮nltk。你可以試一下MWETokenizer

import nltk
tokenized_string = nltk.word_tokenize("my dog is a happy dog")
mwe = [('happy', 'dog')] # 添加這個短語(phrase)
mwe_tokenizer = nltk.tokenize.MWETokenizer(mwe)
result = mwe_tokenizer.tokenize(tokenized_string)

jibe如果有解決方案望補充。

2017年5月22日 17:57