pythono nltk 元组

import nltk
#使用 strip()方法删除输入行结尾的换行符。
f=open("LianCheng.txt", 'r', encoding='utf-8',)
sents=[]
for line in f:
    sents.append(line.strip().split("\t"))
sents[0]

['供热', '双方', '室内', '温度', '存在', '争议', '时', '应', '怎样', '处理']

text=nltk.FreqDist(sents[0])
text

FreqDist({‘争议’: 1,
‘供热’: 1,
‘双方’: 1,
‘处理’: 1,
‘存在’: 1,
‘室内’: 1,
‘应’: 1,
‘怎样’: 1,
‘时’: 1,
‘温度’: 1})

t= nltk.bigrams(sents[0], pad_right=True, pad_left=True)
list(t)

[(None, ‘供热’),
(‘供热’, ‘双方’),
(‘双方’, ‘室内’),
(‘室内’, ‘温度’),
(‘温度’, ‘存在’),
(‘存在’, ‘争议’),
(‘争议’, ‘时’),
(‘时’, ‘应’),
(‘应’, ‘怎样’),
(‘怎样’, ‘处理’),
(‘处理’, None)]

trigram=nltk.trigrams(sents[0])
list(trigram)

[(‘供热’, ‘双方’, ‘室内’),
(‘双方’, ‘室内’, ‘温度’),
(‘室内’, ‘温度’, ‘存在’),
(‘温度’, ‘存在’, ‘争议’),
(‘存在’, ‘争议’, ‘时’),
(‘争议’, ‘时’, ‘应’),
(‘时’, ‘应’, ‘怎样’),
(‘应’, ‘怎样’, ‘处理’)]

finder=nltk.collocations.BigramCollocationFinder.from_words(sents[0])
bigram_measures=nltk.collocations.BigramAssocMeasures()
finder.nbest(bigram_measures.pmi, 10)

[(‘争议’, ‘时’),
(‘供热’, ‘双方’),
(‘双方’, ‘室内’),
(‘存在’, ‘争议’),
(‘室内’, ‘温度’),
(‘应’, ‘怎样’),
(‘怎样’, ‘处理’),
(‘时’, ‘应’),
(‘温度’, ‘存在’)]

finder.score_ngrams(bigram_measures.pmi)

[((‘争议’, ‘时’), 3.3219280948873626),
((‘供热’, ‘双方’), 3.3219280948873626),
((‘双方’, ‘室内’), 3.3219280948873626),
((‘存在’, ‘争议’), 3.3219280948873626),
((‘室内’, ‘温度’), 3.3219280948873626),
((‘应’, ‘怎样’), 3.3219280948873626),
((‘怎样’, ‘处理’), 3.3219280948873626),
((‘时’, ‘应’), 3.3219280948873626),
((‘温度’, ‘存在’), 3.3219280948873626)]

sorted(finder.ngram_fd.items(), key=lambda t: (-t[1], t[0]))[:10]

[((‘争议’, ‘时’), 1),
((‘供热’, ‘双方’), 1),
((‘双方’, ‘室内’), 1),
((‘存在’, ‘争议’), 1),
((‘室内’, ‘温度’), 1),
((‘应’, ‘怎样’), 1),
((‘怎样’, ‘处理’), 1),
((‘时’, ‘应’), 1),
((‘温度’, ‘存在’), 1)]

from nltk.metrics.spearman import *
results_list = ['tem1', 'atem2', 'item3', 'item4', 'item5']
print(list(ranks_from_sequence(results_list)))
sorted(list(ranks_from_sequence(results_list)), key=lambda t: (-t[1], t[0]))

[(‘tem1’, 0), (‘atem2’, 1), (‘item3’, 2), (‘item4’, 3), (‘item5’, 4)]
[(‘item5’, 4), (‘item4’, 3), (‘item3’, 2), (‘atem2’, 1), (‘tem1’, 0)]

results_scored = [('item1', 39.0), ('item2', 40.0), ('item3', 38.0),('item4', 35.0), ('item5', 14.0)]
print(list(ranks_from_scores(results_scored, rank_gap=2)))

[(‘item1’, 0), (‘item2’, 0), (‘item3’, 0), (‘item4’, 3), (‘item5’, 4)]



import nltk
#使用 strip()方法删除输入行结尾的换行符。
f=open("LianCheng.txt", 'r', encoding='utf-8',)
sents=[]
for line in f:
    sents.append(line.strip().split("\t"))
sents[0]
#Out[51]:
['供热', '双方', '室内', '温度', '存在', '争议', '时', '应', '怎样', '处理']
#In [52]:

text=nltk.FreqDist(sents[0])
text
#Out[52]:
FreqDist({'争议': 1,
          '供热': 1,
          '双方': 1,
          '处理': 1,
          '存在': 1,
          '室内': 1,
          '应': 1,
          '怎样': 1,
          '时': 1,
          '温度': 1})
#In [53]:

t= nltk.bigrams(sents[0], pad_right=True, pad_left=True)
list(t)
#Out[53]:
[(None, '供热'),
 ('供热', '双方'),
 ('双方', '室内'),
 ('室内', '温度'),
 ('温度', '存在'),
 ('存在', '争议'),
 ('争议', '时'),
 ('时', '应'),
 ('应', '怎样'),
 ('怎样', '处理'),
 ('处理', None)]
#In [54]:

trigram=nltk.trigrams(sents[0])
list(trigram)
#Out[54]:
[('供热', '双方', '室内'),
 ('双方', '室内', '温度'),
 ('室内', '温度', '存在'),
 ('温度', '存在', '争议'),
 ('存在', '争议', '时'),
 ('争议', '时', '应'),
 ('时', '应', '怎样'),
 ('应', '怎样', '处理')]
#In [55]:

finder=nltk.collocations.BigramCollocationFinder.from_words(sents[0])
bigram_measures=nltk.collocations.BigramAssocMeasures()
finder.nbest(bigram_measures.pmi, 10)
#Out[55]:
[('争议', '时'),
 ('供热', '双方'),
 ('双方', '室内'),
 ('存在', '争议'),
 ('室内', '温度'),
 ('应', '怎样'),
 ('怎样', '处理'),
 ('时', '应'),
 ('温度', '存在')]
#In [56]:

finder.score_ngrams(bigram_measures.pmi)
#Out[56]:
[(('争议', '时'), 3.3219280948873626),
 (('供热', '双方'), 3.3219280948873626),
 (('双方', '室内'), 3.3219280948873626),
 (('存在', '争议'), 3.3219280948873626),
 (('室内', '温度'), 3.3219280948873626),
 (('应', '怎样'), 3.3219280948873626),
 (('怎样', '处理'), 3.3219280948873626),
 (('时', '应'), 3.3219280948873626),
 (('温度', '存在'), 3.3219280948873626)]
#In [57]:

sorted(finder.ngram_fd.items(), key=lambda t: (-t[1], t[0]))[:10]
#Out[57]:
[(('争议', '时'), 1),
 (('供热', '双方'), 1),
 (('双方', '室内'), 1),
 (('存在', '争议'), 1),
 (('室内', '温度'), 1),
 (('应', '怎样'), 1),
 (('怎样', '处理'), 1),
 (('时', '应'), 1),
 (('温度', '存在'), 1)]
#In [58]:

from nltk.metrics.spearman import *
results_list = ['tem1', 'atem2', 'item3', 'item4', 'item5']
print(list(ranks_from_sequence(results_list)))
sorted(list(ranks_from_sequence(results_list)), key=lambda t: (-t[1], t[0]))
[('tem1', 0), ('atem2', 1), ('item3', 2), ('item4', 3), ('item5', 4)]
#Out[58]:
[('item5', 4), ('item4', 3), ('item3', 2), ('atem2', 1), ('tem1', 0)]
#In [59]:

results_scored = [('item1', 39.0), ('item2', 40.0), ('item3', 38.0),('item4', 35.0), ('item5', 14.0)]
print(list(ranks_from_scores(results_scored, rank_gap=2)))
#Out[60]:
[('item1', 0), ('item2', 0), ('item3', 0), ('item4', 3), ('item5', 4)]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值