希望能打造滿足專案需要的分詞器,然後利用這個分詞器,來對收集的垂直領域語料進行分詞。在此基礎上訓練詞向量,供後續的功能使用。理想的需求是已有大量的語料可供訓練或者說轉換不那麼複雜,同時支援詞典新增和增量模型訓練兩種方式。
他在這篇博文提到的坑,前面幾個都沒遇到編譯都很順利,可能我的系統是ubantu18.04的原因。但是在安裝mecab-python版本時遇到問題。提示沒有python.h,而且我的python版本是3.x,在執行setup指令碼時啟用的是2.7。一步一步定位原因,順便看了下指令碼的執行順序。
python版本的問題,出在/usr/bin/python這個軟鏈結上,我安裝的是anaconda環境,並把anaconda的路徑寫入path中,但是在/usr/bin下的python軟鏈結依舊指向了2.7的版本,所以在shell檢視python版本是3.x,但是執行指令碼時還是2.7,修改軟鏈結指向新的目標即可。
4月 16 2018 python -> python2.7*
ln -snf /usr/bin/python3.6 /usr/bin/python
繼續執行安裝mecab-python:/usr/bin$ ll python
lrwxrwxrwx 1 root root 9 11月 27 09:39 python -> python3.6*
報錯說是沒有安裝distutiles。可能是anaconda環境裡沒有這個模組。搜尋尋找解決方法:/mecab-python-0.996$ sudo python setup.py build
traceback (most recent call last):
file "setup.py", line 3, in from distutils.core import setup,extension,os
modulenotfounderror: no module named 'distutils.core'
/mecab-python-0.996$ sudo apt-get install python3-distutils
done!
接著執行build命令
又報錯,現在沒有python.h檔案,無法編譯cxx檔案。通過查詢命令:
sudo find / -name python.h
在anaconda的python安裝目錄下有include/python.h標頭檔案。檢視執行輸出的log,顯示在gcc編譯cxx檔案生產目標檔案時,預設指定的標頭檔案位置是/usr/local/include/python3.6m,而find搜尋到的python.h檔案在anaconda3/include下。通過-i指定標頭檔案位置:
sudo python setup build_ext -i../anaconda/inclde
編譯通過。在build目錄下生成_mecab.cpython-36m-x86_64-linux-gnu.so.so檔案、並複製了乙份mecab.py檔案。執行安裝命令
sudo python setup.py install
開啟python互動程式, 執行import mecab模組,報錯:
traceback (most recent call last):
file "/home/yaspeed/downloads/mecab-python-0.996/mecab.py", line 16, in swig_import_helper
fp, pathname, description = imp.find_module('_mecab', [dirname(__file__)])
file "/home/yaspeed/anaconda3/lib/python3.6/imp.py", line 296, in find_module
raise importerror(_err_msg.format(name), name=name)
importerror: no module named '_mecab'
沒有模組名字,還是位置的問題。setup.py install命令把mecab相關模組安裝到預設的/usr/local/lib/python3.6/site-package下,而不是anaconda下面。解決方法是指定安裝位置:
sudo python setup.py install --prefix=~/anaconda3
執行完,在anaconda3//lib/python3.6/site-packages目錄下有如下檔案:
_mecab.cpython-36m-x86_64-linux-gnu.so
__pycache__/mecab.cpython-36.pyc
mecab.py
開啟python互動程式,import mecab 正常匯入。
到這裡安裝成功。
lucene內建分詞器(一)
1 whilespaceanalyzer 顧名思義,該分詞器會根據空格對文字進行拆分。2 analyzer 首先根據非字母字元進行拆分內容,然後把詞彙單元變成小寫,並且去掉數字詞彙。3 stopanalyzer 和上面的 analyzer差不多,但是會去掉一些常用的詞彙 the a等 停用詞可以定製...
NLTK的分詞器
最近在做nlp的任務,經常會用到分詞。有個問題 nltk的word tokenizer和直接使用split 感覺效果是類似的,而且還會出現can t這類的詞被word tokenizer切分成ca n t。這樣看來,以後分詞就直接使用split 更加高效和正確麼?2021自己更新 現有分詞工具 1....
Elasticsearch ik分詞器的配置和使用
2.解壓包解壓出來乙個名為elasticsearch的資料夾如下圖 3.將 elasticsearch 資料夾重新命名為ik 4.將ik資料夾放入 elasticsearch目錄的plugins資料夾下即可 如下圖所示 5.在瀏覽器輸入 text 我是程式設計師 ik分詞器貼合中文 列如 我是程式設...