国产化Word处理控件Spire.Doc教程:如何用 Python 统计 Word 文档中的词频
<p><img src="https://image.evget.com/attachment/keditor/image/20250812/140050_0.png"></p><p>你是否正为如何<strong>统计 Word 文档中的词频</strong>而苦恼?别担心,无论是为了提取关键词、分析内容结构,还是构建自动化文档工具,Python 都能轻松帮你搞定。你不仅可以统计某个词在整个文档中的总出现次数,还能精确到每一章甚至每一段。本文将带你一步步掌握如何用 Python 高效准确地完成词频统计,帮助你从 Word 文件中快速提取有价值的信息,省去手动查找的麻烦。</p>
<p>在本教程中,我们将使用<strong><u> </u></strong><strong><u>Spire.Doc for Python</u></strong><strong><u> </u></strong>—— 一款功能强大且易于上手的 Python Word 文档处理库。它支持读取、编辑和分析 DOCX 文件的多种功能,而且不依赖于 Microsoft Office 环境。</p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong>Spire.Doc for Python试用下载,请联系Spire官方授权代理商<span style="text-decoration: underline">慧都科技</span></strong></span></p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong>Spire技术交流Q群(125237868)</strong></span></p>
<p> </p>
<p>你可以通过 pip 安装它:</p>
<pre class="prettyprint lang-js highlighter-hljs"><code>pip install spire.doc</code></pre>
<p>或<strong><u>下载 Spire.Doc 安装包</u></strong>,进行自定义安装。</p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong>Spire.Doc for Python试用下载,请联系Spire官方授权代理商<span style="text-decoration: underline">慧都科技</span></strong></span></p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong>Spire技术交流Q群(125237868)</strong></span></p>
<h2>在整篇 Word 文档中查找关键词出现频率</h2>
<p>首先我们来看一个最常见的需求:统计某个词或短语在整个 Word 文档中的出现频率。比如你正在审阅一份 50 页的合同文档,想知道“合同”这个词出现了多少次。</p>
<p>使用 <strong><u>Spire.Doc for Python </u></strong>提供的 <strong>FindAllString()</strong> 方法,你可以快速扫描整份文档,并准确获取关键词的出现次数,只需几行代码就能搞定。</p>
<p>统计词频的基本步骤如下:</p>
<ul>
<li>创建 <strong>Document</strong> 类的对象,并读取目标 Word 文档;</li>
<li>指定要查找的关键词;</li>
<li>使用 <strong>Document.FindAllString()</strong> 方法查找该词在文档中的所有匹配项;</li>
<li>统计匹配次数并输出结果。</li>
</ul>
<p>下面的代码展示了如何统计关键词 "AI绘画" 在整个 Word 文档中出现的次数:</p>
<pre class="prettyprint lang-js highlighter-hljs"><code>from spire.doc import *
from spire.doc.common import *
# 创建一个 Document 对象
document = Document()
# 加载 Word 文档
document.LoadFromFile("/input/AI绘画的利弊及法律应对.docx")
# 设置需要查找的关键词
keyword = "AI绘画"
# 查找所有的匹配项(False:区分大小写,True:全文搜索)
textSelections = document.FindAllString(keyword, False, True)
# 计算出匹配项的个数
count = len(textSelections)
# 打印结果
print(f'"{keyword}" 在文章中出现了 {count} 次。')
document.Close()</code></pre>
<p>下方是使用该段代码查找 Word 文档中关键词出现频率的结果预览: <img src="https://www.e-iceblue.cn/images/tutorials-images/count-word-frequency-in-python-1.png"></p>
<h2>按节统计 Word 文档中的关键词出现频率</h2>
<p>Word 文档通常被划分为多个节(Section),每个节可以包含自己的段落、表格和其他内容。有时候,你可能并不只想统计整个文档中关键词出现的总次数,还想着知道它在每个节中分别出现了多少次。</p>
<p>为了实现这一点,我们可以遍历文档中的所有节,并在每个节内部查找目标关键词。下面我们就来看一下如何使用 Python 来实现按节统计词频。</p>
<p>实现步骤如下:</p>
<ul>
<li>创建一个 <strong>Document</strong> 对象并加载 Word 文件;</li>
<li>定义要搜索的目标关键词;</li>
<li>遍历文档中的所有节,并在每个节中遍历所有段落;</li>
<li>使用正则表达式统计关键词的出现次数;</li>
<li>输出每个节中的统计结果,并汇总总次数。</li>
</ul>
<p>下面的示例代码演示了如何统计关键词 "AI绘画" 在 Word 文档每个节中的出现次数:</p>
<pre class="prettyprint lang-js highlighter-hljs"><code>import re
from spire.doc import *
from spire.doc.common import *
# 创建一个 Document 对象并加载 Word 文件
document = Document()
document.LoadFromFile("/input/AI绘画的利弊及法律应对.docx")
# 指定要查找的关键词
keyword = "AI绘画"
# 关键词出现的总次数
total_count = 0
# 获取所有节(Section)
sections = document.Sections
# 遍历每一节
for i in range(sections.Count):
section = sections.get_Item(i)
paragraphs = section.Paragraphs
section_count = 0
print(f"\n=== 第 {i + 1} 节 ===")
# 遍历该节中的每个段落
for j in range(paragraphs.Count):
paragraph = paragraphs.get_Item(j)
text = paragraph.Text
# 使用正则表达式查找所有匹配项
count = len(re.findall(re.escape(keyword), text, flags=re.IGNORECASE))
section_count += count
total_count += count
print(f'第 {i + 1} 节中共出现:{section_count} 次')
print(f'\n=== 所有节中总共出现:{total_count} 次 ===')
document.Close()</code></pre>
<p>下方图片展示了使用 Python 按节统计关键词出现频率的结果: <img src="https://www.e-iceblue.cn/images/tutorials-images/count-word-frequency-in-python-2.png"></p>
<h2>按段落统计 Word 文档中的关键词出现频率</h2>
<p>在进行敏感词检测或内容审查等任务时,往往需要更细致的词频分析。这一节我们就来看看如何按段落统计 Word 文档中某个关键词的出现频率,帮助你更深入了解特定文本在文档中的分布情况。</p>
<p>按段落统计关键词出现频率的步骤如下:</p>
<ul>
<li>创建 <strong>Document</strong> 对象,并加载 Word 文档;</li>
<li>指定要搜索的关键词;</li>
<li>遍历文档中的每个节和其中的每个段落;</li>
<li>使用正则表达式查找并统计关键词的出现次数;</li>
<li>输出每个包含关键词的段落编号及出现次数,并汇总总次数。</li>
</ul>
<p>下面的代码演示了如何统计关键词 "AI绘画" 在 Word 文档各段落中的出现频率:</p>
<pre class="prettyprint lang-js highlighter-hljs"><code>import re
from spire.doc import *
from spire.doc.common import *
# 创建一个 Document 对象
document = Document()
# 加载 Word 文档
document.LoadFromFile("/input/AI绘画的利弊及法律应对.docx")
# 自定义要查找的关键词
keyword = "AI绘画"
# 初始化变量
total_count = 0
paragraph_index = 1
# 遍历每一节和其中的段落
sections = document.Sections
for i in range(sections.Count):
section = sections.get_Item(i)
paragraphs = section.Paragraphs
for j in range(paragraphs.Count):
paragraph = paragraphs.get_Item(j)
text = paragraph.Text
# 忽略大小写查找关键词的所有出现次数
count = len(re.findall(re.escape(keyword), text, flags=re.IGNORECASE))
# 如果找到关键词,则输出结果
if count > 0:
print(f'第 {paragraph_index} 段:"{keyword}" 出现了 {count} 次')
total_count += count
paragraph_index += 1
# 输出总共出现的次数
print(f'\n所有段落中总共出现:{total_count} 次')
document.Close()</code></pre>
<p>下方为按段落统计关键词出现频率的结果预览: <img src="https://www.e-iceblue.cn/images/tutorials-images/count-word-frequency-in-python-3.png"></p>
<h2>总结</h2>
<p>本文介绍了如何使用 Python 按全文、按节、按段落统计 Word 文档中关键词的出现频率。无论你是在处理长篇报告、筛查敏感词,还是开发智能文档工具,通过 <strong><u>Spire.Doc for Python </u></strong>实现自动化操作,既高效又准确。</p>
<h2>关于统计词频的常见问题</h2>
<p><strong>Q1:如何统计某个词在 Word 文档中出现了多少次?</strong></p>
<p>你可以使用 Word 自带的查找功能手动统计,也可以使用 Python 搭配 <strong>Spire.Doc</strong> 等库进行自动统计。后者可以更灵活地处理整个文档,或者只针对特定节或段落进行分析。</p>
<p><strong>Q2:可以分析多个 Word 文件中的词频吗?</strong></p>
<p>当然可以。你可以在 Python 中编写循环,批量加载多个 Word 文档,并对每个文件应用相同的词频统计逻辑。这种方式特别适合用于批量文档处理或内容审计场景。</p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong>Spire.Doc for Python试用下载,请联系Spire官方授权代理商<span style="text-decoration: underline">慧都科技</span></strong></span></p>
<p style="text-align: center"><span style="color: rgba(230, 126, 35, 1)"><strong>Spire技术交流Q群(125237868)</strong></span></p><br><br>
来源:https://www.cnblogs.com/software-Development/p/19033852
頁:
[1]