NLTK是一個比較優秀的自然語言處理工具包,是我們聊天機器人需要的比較重要的一個工具
NLTK庫安裝
pip install nltk
執行python并下載書籍:
[root@centos #] python
Python 2.7.11 (default, Jan 22 2016, 08:29:18)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import nltk
>>> nltk.download()
選擇book后點Download開始下載
下載完成以后再輸入:
>>> from nltk.book import *
你會看到可以正常加載書籍如下:
*** Introductory Examples for the NLTK Book ***
Loading text1, ..., text9 and sent1, ..., sent9
Type the name of the text or sentence to view it.
Type: 'texts()' or 'sents()' to list the materials.
text1: Moby Dick by Herman Melville 1851
text2: Sense and Sensibility by Jane Austen 1811
text3: The Book of Genesis
text4: Inaugural Address Corpus
text5: Chat Corpus
text6: Monty Python and the Holy Grail
text7: Wall Street Journal
text8: Personals Corpus
text9: The Man Who Was Thursday by G . K . Chesterton 1908
這里面的text*都是一個一個的書籍節點,直接輸入text1會輸出書籍標題
>>> text1
<Text: Moby Dick by Herman Melville 1851>
搜索文本
執行
>>> text1.concordance("former")
會顯示20個包含former的語句上下文
我們還可以搜索相關詞,比如:
>>> text1.similar("ship")
whale boat sea captain world way head time crew man other pequod line
deck body fishery air boats side voyage
輸入了ship,查找了boat,都是近義詞
我們還可以查看某個詞在文章里出現的位置:
>>> text4.dispersion_plot(["citizens", "democracy", "freedom", "duties", "America"])
詞統計
len(text1):返回總字數
set(text1):返回文本的所有詞集合
len(set(text4)):返回文本總詞數
text4.count("is"):返回“is”這個詞出現的總次數
FreqDist(text1):統計文章的詞頻并按從大到小排序存到一個列表里
fdist1 = FreqDist(text1);fdist1.plot(50, cumulative=True):統計詞頻,并輸出累計圖像
縱軸表示累加了橫軸里的詞之后總詞數是多少,這樣看來,這些詞加起來幾乎達到了文章的總詞數
fdist1.hapaxes():返回只出現一次的詞
text4.collocations():頻繁的雙聯詞
自然語言處理關鍵點
詞意理解:中國隊大勝美國隊;中國隊大敗美國隊。“勝”、“敗”一對反義詞,卻表達同樣的意思:中國贏了,美國輸了。這需要機器能夠自動分析出誰勝誰負
自動生成語言:自動生成語言基于語言的自動理解,不理解就無法自動生成
機器翻譯:現在機器翻譯已經很多了,但是還很難達到最佳,比如我們把中文翻譯成英文,再翻譯成中文,再翻譯成英文,來回10輪,發現和最初差別還是非常大的。
人機對話:這也是我們想做到的最終目標,這里有一個叫做“圖靈測試”的方式,也就是在5分鐘之內回答提出問題的30%即通過,能通過則認為有智能了。
自然語言處理分兩派,一派是基于規則的,也就是完全從語法句法等出發,按照語言的規則來分析和處理,這在上個世紀經歷了很多年的試驗宣告失敗,因為規則太多太多,而且很多語言都不按套路出牌,想象你追趕你的影子,你跑的快他跑的更快,你永遠都追不上它。另一派是基于統計的,也就是收集大量的語料數據,通過統計學習的方式來理解語言,這在當代越來越受重視而且已經成為趨勢,因為隨著硬件技術的發展,大數據存儲和計算已經不是問題,無論有什么樣的規則,語言都是有統計規律的,當然基于統計也存在缺陷,那就是“小概率事件總是不會發生的”導致總有一些問題解決不了。
知行辦公,專業移動辦公平臺 https://zx.naton.cn/
【總監】十二春秋之,3483099@qq.com;
【Master】zelo,616701261@qq.com;
【運營】狼行天下,897221533@qq.com;
【產品設計】流浪貓,364994559@qq.com;
【體驗設計】兜兜,2435632247@qq.com;
【iOS】淘碼小工,492395860@qq.com;iMcG33K,imcg33k@gmail.com;
【Android】人猿居士,1059604515@qq.com;思路的頓悟,1217022114@qq.com;
【java】首席工程師MR_W,feixue300@qq.com;
【測試】土鏡問道,847071279@qq.com;
【數據】喜樂多,42151960@qq.com;
【安全】保密,你懂的。