NLP-python 自然语言处理01

 1  # -*- coding: utf-8 -*-
 2 """
 3 Created on Wed Sep  6 22:21:09 2017
 4 
 5 @author: Administrator
 6 """
 7 import nltk
 8 from nltk.book import *
 9 # 搜搜单词
10 text1.concordance("monstrous")  # 查找关键词
11 
12 #搜搜相似词
13 text1.similar('monstrous')
14 
15 # 搜搜共同的上下文
16 text2.common_contexts(['monstrous', 'very'])
17 
18 
19 # 词汇的分布
20 text4.dispersion_plot(['moustrous','very'])
21 
22 # 词汇的长度
23 len(text3)
24 
25 # 重复词密度
26 len(text3)/len(set(text3))
27 
28 #关键词密度
29 text3.count('smote')
30 100*text4.count('a')/len(text4)
31 
32 def lexical_diversity(text):
33     return len(text) / len(set(text))
34 
35 def percentage(count, total):
36     return 100 * count /total
37 
38 
39 
40 sent1=['Call', 'me', 'Ishmael', '.']
41 
42 # 获取文本词索引,注意索引的长度,从零开始
43 text3[172]
44 
45 text3.index('love')
46 
47 # 频率分布情况,对常用词语的判断
48 # 简单统计, 频率分布
49 fdist1 = FreqDist(text1)
50 
51 vocabulary1 = fdist1.keys()
52 fdist1['whale']
53 fdist1.plot(50, cumulative=True)
54 
55 # 低频词
56 fdist1.hapaxes()
57 
58 # 细粒度的词选择
59 V = set(text1)
60 long_words = [w for w in V if len(w) >15]
61 sorted(long_words)
62 
63 # 词频加词的长度同时决定
64 fdist5 = FreqDist(text5)
65 sorted([w for w in set(text5) if len(w) > 7 and fdist5[w] > 7])
66 
67 # 常用词语搭配,双元词搭配
68 from nltk.util import bigrams
69 list(bigrams(['more', 'is', 'said', 'than', 'done']))
70 
71 
72 # 常用的双元词搭配
73 text4.collocations()
74 
75 # 文本中每个词的长度
76 [len(w) for w in text1]
77 
78 # 各个长度词的分布,输出是一个字典
79 fdist = FreqDist([len(w) for w in text1])
80 
81 fdist.keys()    # 索引值
82 fdist.items()   
83 fdist.max()    # 词汇出现最多的那个词的索引
84 
85 fdist[3]     # 索引值为3的位置

 

posted @ 2017-09-10 22:01  今夜无风  阅读(541)  评论(0编辑  收藏  举报