1. 程式人生 > >NLTK相關知識介紹

NLTK相關知識介紹

什麼是NLTK

NLTK,全稱Natural Language Toolkit,自然語言處理工具包,是NLP研究領域常用的一個Python庫,由賓夕法尼亞大學的Steven BirdEdward LoperPython的基礎上開發的一個模組,至今已有超過十萬行的程式碼。這是一個開源專案,包含資料集、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設計目標

  • 簡易性;
  • 一致性;
  • 可擴充套件性;
  • 模組化;