【语言处理与Python】1.3计算语言:简单的统计
【频率分布】
目的:想通过找到一本书中使用最频繁的词汇,分析这本书的主题和风格。
频率分布:告诉我们每个词汇出现的频率。
分析高频词
-使用FreqDist寻找《白鲸记》中最常见的50个词
fdist1=FreqDist(text1)
vocabulary1=fdist.keys()//所有的词汇
vocabulary1[:50]//前50个出现频率最高的词汇
fdist1['whale'](906)//出现的次数
-累积频率图
fdist1.plot(50,cumulative=True)
-在高频词汇中,有很多无用的词汇,称作管道英语。
分析低频词
-只出现了一次的词(hapaxes)
fdist1.hapaxes()
-低频词汇也很多,如果不分析上下文很难才出他们的意义。高频和低频词汇都很少有帮助,要寻找其他办法分析。
【细粒度的选择词】
-找出长度大于15的词汇
v=set(text1)
long_words=[w for w in v if len(w)>15]
sorted(long_words)
-这样找到了长词。在此基础上,在分析长词出现的概率,会更有效。这样忽略的短高频词(the)和长低频词(antiphilosophists)。
-fdist5=FreqDist(text5)
-sorted([w for w in set(text5) if len(w)>7 and fdist5[w]>7])
【词语搭配和双连词(bigrams)】
-使用bigrams提取文本词汇中的词对,也就是双连词。
bigrams(['more','is','said','than','done'])
-text4.collocations()找到比我们基于单个词的频率预期得到的更频繁出现的双连词
【计数其他东西】
-查看词长的分布
[len(w) for w in text1]
fdist=FreqDist([len(w) for w in text1])
fdist.keys()
fdist.items()
fdist.max()//出现长度最多的数值
fdist[3]//3对应出现的次数
fdist.freq(3)//出现的频率
-一些常用的NLTK频率分布类中定义的函数
fdist=FreqDist(samples)创建包含给定样本的频率分布
fist.inc(sample)增加样本
fdist['monstrous']计数给定样本出现的次数
fdist.freq('monstrous')给定样本的频率
fdistN()样本总数
fdist.keys()以频率递减顺序排序的样本链表
for sample in fdist:以频率递减的顺序遍历样本
fdist.max()数值最大的样本
fdist.tabulate()绘制频率分布表
fdist.plot()绘制频率分布图
fdist.plot(cumulative=True)绘制累计频率分布图
fdist1<fdist2测试样本在fdist1中出现的概率是否小于fdist2
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· MQ 如何保证数据一致性?