空間分析:4-1.分詞模型hanLP簡介與安裝
自然語言處理NLP相對來說,是比較火的方向,分詞模型很多,選起來容易眼花繚亂,我最開始使用過結巴分詞,簡單易用。後來又看到了hanLP,介紹上說,它是用《人民日報》語料庫訓練的,深得我心,於是拿來用用。
hanLP的git連線:https://github.com/hankcs/HanLP/
hanLP的官網:https://www.hanlp.com/
一、anaconda安裝Python3.6
因為hanlp依賴TensorFlow,但TensorFlow不支援Python3.6以上版本,所以我們需要先有一個Python3.6的環境。
但社群版pycharm不支援直接從conda直接建立Python環境,所以乾脆直接安裝一個anaconda吧!
我們在映象網址,下載一個版本號吻合的anaconda:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
我選擇的安裝檔案是:Anaconda3-5.2.0-Windows-x86_64.exe,適合Python3.6版本。
開啟exe,一直next,直到安裝,仔細觀察進度條,會發現上面有Extract:Python-3.6.5的標識,說明我們安裝的這個anaconda是Python3.6的。
安裝的過程中,記住安裝路徑。
安裝會比較慢,耐心等待即可。
到後面會提示Install Microsoft VSCode,因為我們使用的是pycharm,所以點選skip就行。
最後點選finsh就行,兩個learn的核取方塊,可以取消勾選。
二、pycharm配置Python3.6
我們已經安裝完anaconda,並自帶的Python3.6了,現在只要把它們配置到pycharm裡就行了。
開啟pycharm,+New Project,新建一個工程fenci。
File——Settings,快捷鍵ctrl+alt+s。開啟Settings配置。
在Settings對話方塊,Project:fenci中的Python Interpreter中,點選show All。
在Python Interpreter中點選+。
在Add Python Interpreter中,選擇Virtualenv Environment,勾選 Existing environment,Interpreter選擇anaconda3安裝目錄下的python.exe。點選ok。
一路ok回去,能看到anaconda下的Python已經預裝了好多包,這麼多包,覺得自己還可以搞點別的事兒。
三、安裝hanLP
安裝hanlp的時候,就能直接把tensorflow安裝上。
以管理員身份,開啟cmd。
一路切換到anaconda3安裝目錄下的scripts資料夾,既pip所在的資料夾,如C:\Users\**\Anaconda3\Scripts。
輸入pip install pyhanlp。
安裝完成後,下載https://file.hankcs.com/hanlp/data-for-1.7.5.zip ,下載完成後,將data-for-1.7.5.zip重新命名為data-for-1.7.8.zip,放在資料夾C:\Users\**\Anaconda3\Lib\site-packages\pyhanlp\static。
(
我們安裝的是hanlp1.x版本,因為電腦配置不夠的話,安裝hanlp2.x版本會失敗。
但是hanlp1.x版本,依賴java環境。具體可參加:https://github.com/hankcs/pyhanlp
但如果電腦比較新,配置比較給力,尤其是ios或linux作業系統,可以安裝hanlp2.x版本,pip install hanlp。
一次能安裝成功,是運氣。
如果安裝不成功,遇到什麼問題解決什麼問題吧。
我遇到過的部分問題羅列如下:
1.沒有wrapt:
報錯:Cannot uninstall 'wrapt'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
因為報這個錯,安裝就退出了,所以必須解決。
那就安裝一個wrapt,--igonre-installed,是忽略已安裝版本。
pip install wrapt --ignore-installed
2.升級pip
警告:You are using pip version 10.0.1, however version 20.3b1 is available.
升級pip:pip install --upgrade pip
3.沒有msgpack
警告:distributed 1.21.8 requires msgpack, which is not installed.
安裝msgback:pip install msgback
4.tensorflow沒有Microsoft Visual C++環境
在Microsoft網站上下載vc的安裝包,選擇電腦作業系統版本相對應安裝檔案,點選next。
https://www.microsoft.com/zh-CN/download/details.aspx?id=53587
檔案下載好了,直接安裝即可。
如果安裝失敗,可能是有版本衝突,去控制皮膚——程式——程式和功能,將其他版本的Microsoft Visual C++都解除安裝掉,重新安裝。
5.numpy版本高
解除安裝numpy,重新安裝。
pip uninstall numpy
pip install numpy==1.16.0
6.header與library版本不統一
解除安裝h5py,重新安裝。
pip uninstall h5py
pip install h5py
)
四、測試
官方的測試指令碼:
from pyhanlp import *
print(HanLP.segment('你好,歡迎在Python中呼叫HanLP的API'))
執行,在控制檯上,會列印出:
[你好/vl, ,/w, 歡迎/v, 在/p, Python/nx, 中/f, 呼叫/v, HanLP/nx, 的/ude1, API/nx]
說明執行成功了。
文字後面的標籤,是詞性標註,詞性標註可參見:
http://www.hankcs.com/nlp/part-of-speech-tagging.html#h2-8
五、房源描述屬性詞頻統計
測試通過後,我們就要根據自己的需求進行指令碼編寫了。
我要做的是,統計房源描述的詞頻。
指令碼如下:
from pyhanlp import *
f = open(r'beikefangyuanall.txt','r',encoding='utf-8')
flines = f.readlines()
result = {}
for idx,line in enumerate(flines):
# if idx>10:
# break
# 每條記錄長這樣: 朝陽 北京朝陽在售二手房 /ershoufang/chaoyang/ 芍藥居北里 2003年商品房,小區中間,帶電梯 https://bj.ke.com/ershoufang/101107773062.html 芍藥居北里 https://bj.ke.com/xiaoqu/1111027379657/ 中樓層(共24層)|2003年建|2室1廳|91.69平米|西 706萬 單價76998.6元/平米 44人關注/4月前釋出 近地鐵|VR看裝修 116.435619 39.986142
segs = HanLP.segment(line.strip('\n').split('\t')[3])
for term in segs:
if not result.__contains__(term.word):
result[term.word] = 1
else:
result[term.word] += 1
result_sort = sorted(result.items(),key=lambda item:item[1],reverse=True)
fnew = open(r'cipin.txt','a',encoding='utf-8')
for r in result_sort:
fnew.write(r[0]+'\t'+str(r[1])+'\n')
f.close()
fnew.close()
結果如下,對統計出來的詞頻進行了正序排列:
南北通透,滿五唯一、好樓層,大概是最多的描述詞彙了,跟我們的生活經驗是相符的,很好。
六、總結
總的來說,指令碼不難寫,比較麻煩的是安裝包、配環境,需要花些心思。
簡單的詞頻統計,調包就行,但有定製化的需求,可能需要重新訓練模型了。
相關文章
- java分詞工具hanlp介紹Java分詞HanLP
- HanLP分類模組的分詞器介紹HanLP分詞
- Hanlp分詞之CRF中文詞法分析詳解HanLP分詞CRF詞法分析
- Ansj與hanlp分詞工具對比HanLP分詞
- pyhanlp 中文詞性標註與分詞簡介HanLP詞性標註分詞
- Hanlp在java中文分詞中的使用介紹HanLPJava中文分詞
- HanLP程式碼與詞典分離方案與流程HanLP
- HanLP分詞工具中的ViterbiSegment分詞流程HanLP分詞Viterbi
- Rancher簡介與安裝
- Elasticsearch整合HanLP分詞器ElasticsearchHanLP分詞
- HanLP-實詞分詞器詳解HanLP分詞
- Redis簡介與安裝(Windows)RedisWindows
- Zabbix 簡介與yum安裝
- scrapy的簡介與安裝
- OpenCV 簡介與安裝方法OpenCV
- HanLP中文分詞Lucene外掛HanLP中文分詞
- 分詞工具Hanlp基於感知機的中文分詞框架HanLP中文分詞框架
- 1.Cobaltstrike 安裝與簡介
- python呼叫hanlp分詞包手記PythonHanLP分詞
- HanLP分詞命名實體提取詳解HanLP分詞
- 基於hanlp的es分詞外掛HanLP分詞
- 12.2 grid 安裝空間要求
- Python中名稱空間包簡介Python
- MapReduce實現與自定義詞典檔案基於hanLP的中文分詞詳解HanLP中文分詞
- Hanlp中使用純JAVA實現CRF分詞HanLPJavaCRF分詞
- Spring MVCD框架中呼叫HanLP分詞的方法SpringMVC框架HanLP分詞
- Spark中分散式使用HanLP(1.7.0)分詞示例Spark分散式HanLP分詞
- 基於 HanLP 的 ES 中文分詞外掛HanLP中文分詞
- 時間與空間複雜度分析複雜度
- PostgreSQL簡介及安裝SQL
- Allure簡介及安裝
- RabbitMQ簡介及安裝MQ
- Django簡介及安裝Django
- Docker簡介及安裝Docker
- 中文分詞演算法工具hanlp原始碼解析中文分詞演算法HanLP原始碼
- es筆記四之中文分詞外掛安裝與使用筆記中文分詞
- elasticsearch安裝和使用ik分詞器Elasticsearch分詞
- HanLP 關鍵詞提取演算法分析詳解HanLP演算法