對(duì)我來(lái)說(shuō),算是個(gè)坑生棍。還好,百度搜索到了這個(gè)問(wèn)題媳谁。
LTP及pyltp
LTP提供了一系列中文自然語(yǔ)言處理工具涂滴,用戶(hù)可以使用這些工具對(duì)于中文文本進(jìn)行分詞友酱、詞性標(biāo)注、句法分析等等工作柔纵。
pyltp 是 LTP 的 Python 封裝缔杉,提供了分詞,詞性標(biāo)注搁料,命名實(shí)體識(shí)別或详,依存句法分析,語(yǔ)義角色標(biāo)注的功能郭计。
github網(wǎng)址:https://github.com/HIT-SCIR/pyltp
在線文檔:https://pyltp.readthedocs.io/zh_CN/latest/api.html
源碼安裝
源碼安裝或whl打包霸琴,都有一個(gè)尷尬的地方,也就是python 3.7及以上之后昭伸,不受官方原始包支持梧乘,得改代碼。
pyltp的安裝庐杨,不推薦通過(guò)pip install pyltp==0.2.1這種方式安裝选调。這樣的安裝方式,報(bào)錯(cuò)了也不能解決辑莫。所以我們需要從pypi下載源碼学歧,然后通過(guò)修改源碼的方式安裝(python 3.6不用更改源碼,可以直接pip install安裝)各吨。
1枝笨, 從pypi下載源碼
https://pypi.org/project/pyltp/#files
2, 解壓軟件包揭蜒,然后進(jìn)入目錄安裝
pip install setup.py
3横浑, 如果Python版本為3.7及以上,可能會(huì)報(bào)如下錯(cuò)誤:
patch/libs/python/src/converter/builtin_converters.cpp:51:64:
error:
invalid conversion from ‘const void*’ to ‘void*’ [-fpermissive]
return PyUnicode_Check(obj) ? _PyUnicode_AsString(obj) : 0;
error: command 'gcc' failed with exit status 1
這種出錯(cuò)屉更,是c++和c的差別徙融,c允許包括const void* 轉(zhuǎn)換為void指針類(lèi)型,但c++不讓?zhuān)跃蚲cc報(bào)錯(cuò)了瑰谜。
找到報(bào)錯(cuò)文件patch/libs/python/src/converter/builtin_converters.cpp欺冀,把51行加一個(gè)(void)類(lèi)型轉(zhuǎn)換。
Whl打包及安裝
為了不重復(fù)修改源碼萨脑,方便之后的安裝隐轩,根據(jù)源碼生成一個(gè)whl文件是很有意義的。生成whl文件步驟如下:
1渤早,同樣下載及解壓pyltp职车。
2,運(yùn)行如下命令檢查文件的完整性。
python setup.py check
3悴灵,運(yùn)行如下命令會(huì)在dist目錄下生成whl文件(如果提示報(bào)錯(cuò)扛芽,則按前面提到的方式修改源碼,重新運(yùn)行)积瞒。
python setup.py sdist bdist_wheel || true