安裝NLTK
pip install nltk
安裝NLTK包
import nltk nltk.download() #跳出GUI界面,下載需要的資料
計算單字頻率並繪圖
from bs4 import BeautifulSoup
import urllib.request
import nltk
response = urllib.request.urlopen('http://php.net/')
html = response.read()
soup = BeautifulSoup(html,"html5lib")
text = soup.get_text(strip=True)
tokens = [t for t in text.split()]
freq = nltk.FreqDist(tokens)
for key,val in freq.items():
print (str(key) + ':' + str(val))
<strong>freq.plot(20, cumulative=False)</strong>
移除停用詞Stop Words
停用詞大致分為兩類。 1)人類語言中包含的功能詞,如'the'、'is'、'at'、'which'、'on'等。 2)詞彙詞,比如'want'等,這些詞應用十分廣泛,但是對這樣的詞搜尋引擎無法保證能夠給出真正相關的搜索結果。
<strong>#stopwords必須使用nltk.download()下載</strong>
from bs4 import BeautifulSoup
import urllib.request
import nltk
from nltk.corpus import stopwords
response = urllib.request.urlopen('http://php.net/')
html = response.read()
soup = BeautifulSoup(html,"html5lib")
text = soup.get_text(strip=True)
tokens = [t for t in text.split()]
clean_tokens = tokens[:]
sr = stopwords.words('english')
for token in tokens:
if token in stopwords.words('english'):
clean_tokens.remove(token)
freq = nltk.FreqDist(clean_tokens)
for key,val in freq.items():
print (str(key) + ':' + str(val))
freq.plot(20,cumulative=False)
<strong>可使用1984這本小說來分析看看,哪些是高頻率單字</strong>
如下連結
<a href="http://gutenberg.net.au/ebooks01/0100021.txt" rel="nofollow noopener noreferrer" target="_blank">http://gutenberg.net.au/ebooks01/0100021.txt</a>
分開英文句子
from nltk.tokenize import <strong>sent_tokenize</strong>
mytext = "Hello Adam, how are you? I hope everything is going well. Today is a good day, see you dude."
print(sent_tokenize(mytext))
<strong>['Hello Adam, how are you?', 'I hope everything is going well.', 'Today is a good day, see you dude.']</strong>
分開英文單字
from nltk.tokenize import <strong>word_tokenize</strong>
mytext = "Hello Mr. Adam, how are you? I hope everything is going well. Today is a good day, see you dude."
print(word_tokenize(mytext))
<strong>['Hello', 'Mr.', 'Adam', ',', 'how', 'are', 'you', '?', 'I', 'hope', 'everything', 'is', 'going', 'well', '.', 'Today', 'is', 'a', 'good', 'day', ',', 'see', 'you', 'dude', '.']</strong>
分開非英文文字
from nltk.tokenize import sent_tokenize
mytext = "Bonjour M. Adam, comment allez-vous? J'espère que tout va bien. Aujourd'hui est un bon jour."
print(sent_tokenize(mytext,"<strong>french</strong>"))
['Bonjour M. Adam, comment allez-vous?', "J'espère que tout va bien.", "Aujourd'hui est un bon jour."]
使用WordNet顯示同義/反義詞
<strong>#wordnet必須使用nltk.download()下載</strong>
from nltk.corpus import wordnet
syn = wordnet.synsets("pain")
print(syn[0].definition())
print(syn[0].examples())
<strong>#用For迴圈取得大量相關代名詞</strong>
from nltk.corpus import wordnet synonyms = [] for syn in wordnet.synsets('Computer'): for lemma in syn.lemmas(): synonyms.append(lemma.name()) print(synonyms)
#用For迴圈取得大量反義詞
from nltk.corpus import wordnet
antonyms = []
for syn in wordnet.synsets("small"):
for l in syn.lemmas():
if l.antonyms():
antonyms.append(l.antonyms()[0].name())
print(antonyms)
去除字尾
from nltk.stem import PorterStemmer stemmer = PorterStemmer() print(stemmer.stem('working'))
#顯示work -----------------------------------------------
<strong>支持去除以下語言的字尾</strong>
from nltk.stem import SnowballStemmer
print(SnowballStemmer.languages)
<strong>('arabic', 'danish', 'dutch', 'english', 'finnish', 'french', 'german', 'hungarian', 'italian', 'norwegian', 'porter', 'portuguese', 'romanian', 'russian', 'spanish', 'swedish')</strong>
------------------------------------------------
去除德文字尾
from nltk.stem import SnowballStemmer
french_stemmer = SnowballStemmer('german')
print(french_stemmer.stem("Guten"))
更精確的去除字尾
from nltk.stem import WordNetLemmatizer lemmatizer = WordNetLemmatizer() print(lemmatizer.lemmatize('playing', pos="v")) print(lemmatizer.lemmatize('playing', pos="n")) print(lemmatizer.lemmatize('playing', pos="a")) print(lemmatizer.lemmatize('playing', pos="r"))
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 深度学习-自然语言模型随记
- 达观数据王文广:如何玩转自然语言理解和深度学习实践?
- 【技术综述】深度学习在自然语言处理中的应用发展史
- 斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用
- 斯坦福大学深度学习自然语言处理课程CS224N 2019 全20个视频分享
- 资料 | 【复旦大学邱锡鹏老师】面向自然语言处理的深度学习基础,199页ppt
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
从界面到网络空间
(美)海姆 / 金吾伦/刘钢 / 上海科技教育出版社 / 2000-7 / 16.40元
计算机急剧改变了20世纪的生活。今天,我们凭借遍及全球的计算机网络加速了过去以广播、报纸和电视形式进行的交流。思想风驰电掣般在全球翻飞。仅在角落中潜伏着已完善的虚拟实在。在虚拟实在吕,我们能将自己沉浸于感官模拟,不仅对现实世界,也对假想世界。当我们开始在真实世界与虚拟世界之间转换时,迈克尔·海姆问,我们对实在的感觉如何改变?在〈从界面到网络空间〉中,海姆探讨了这一问题,以及信息时代其他哲学问题。他......一起来看看 《从界面到网络空间》 这本书的介绍吧!