我目前正在尝试习惯Python并且最近在我的编码中遇到阻塞。我无法运行能够计算短语出现在html文件中的次数的代码。我最近收到一些帮助构建用于计算文本文件中频率的代码,但我想知道有一种方法可以直接从html文件中执行此操作(绕过复制和粘贴替代方法)。任何建议都将得到真诚的感谢。我之前使用的编码如下:
#!/bin/env python 3.3.2
import collections
import re
# Defining a function named "findWords".
def findWords(filepath):
with open(filepath) as infile:
for line in infile:
words = re.findall('\w+', line.lower())
yield from words
phcnt = collections.Counter()
from itertools import tee
phrases = {'central bank', 'high inflation'}
fw1, fw2 = tee(findWords('02.2003.BenBernanke.txt'))
next(fw2)
for w1,w2 in zip(fw1, fw2):
phrase = ' '.join([w1, w2])
if phrase in phrases:
phcnt[phrase] += 1
print(phcnt)
答案 0 :(得分:1)
您可以使用some_str.count(some_phrase)函数
In [19]: txt = 'Text mining, also referred to as text data mining, Text mining,\
also referred to as text data mining,'
In [20]: txt.lower().count('data mining')
Out[20]: 2
答案 1 :(得分:0)
如何在进行分析之前剥离html标签呢? html2text做得很好。
import html2text
content = html2text.html2text(infile.read())
会给你文本内容(以某种方式格式化,但我认为你的方法没有问题)。还有一些选项可以忽略图像和链接,您可以使用
h = html2text.HTML2Text()
h.ignore_images = True
h.ignore_links = True
content = h.handle(infile.read())