NLTK相關知識介紹
阿新 • • 發佈:2018-12-12
什麼是NLTK
NLTK
,全稱Natural Language Toolkit
,自然語言處理工具包,是NLP研究領域常用的一個Python
庫,由賓夕法尼亞大學的Steven Bird
和Edward Loper
在Python
的基礎上開發的一個模組,至今已有超過十萬行的程式碼。這是一個開源專案,包含資料集、Python模組、教程等;
怎樣安裝
詳情可以參見我的另一篇部落格NLP的開發環境搭建,通過這篇部落格,你將學會Python
環境的安裝以及NLTK
模組的下載;
常見模組及用途
NLTK能幹啥?
- 搜尋文字
- 單詞搜尋:
- 相似詞搜尋;
- 相似關鍵詞識別;
- 詞彙分佈圖;
- 生成文字;
- 計數詞彙
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018-9-28 22:21
# @Author : Manu
# @Site :
# @File : python_base.py
# @Software: PyCharm
from __future__ import division
import nltk
import matplotlib
from nltk.book import *
from nltk.util import bigrams
# 單詞搜尋
print('單詞搜尋' )
text1.concordance('boy')
text2.concordance('friends')
# 相似詞搜尋
print('相似詞搜尋')
text3.similar('time')
#共同上下文搜尋
print('共同上下文搜尋')
text2.common_contexts(['monstrous','very'])
# 詞彙分佈表
print('詞彙分佈表')
text4.dispersion_plot(['citizens', 'American', 'freedom', 'duties'])
# 詞彙計數
print('詞彙計數')
print(len(text5) )
sorted(set(text5))
print(len(set(text5)))
# 重複詞密度
print('重複詞密度')
print(len(text8) / len(set(text8)))
# 關鍵詞密度
print('關鍵詞密度')
print(text9.count('girl'))
print(text9.count('girl') * 100 / len(text9))
# 頻率分佈
fdist = FreqDist(text1)
vocabulary = fdist.keys()
for i in vocabulary:
print(i)
# 高頻前20
fdist.plot(20, cumulative = True)
# 低頻詞
print('低頻詞:')
print(fdist.hapaxes())
# 詞語搭配
print('詞語搭配')
words = list(bigrams(['louder', 'words', 'speak']))
print(words)
NLTK設計目標
- 簡易性;
- 一致性;
- 可擴充套件性;
- 模組化;