【问题标题】:Word Frequency in a WikiPedia Article维基百科文章中的词频
【发布时间】:2018-03-22 15:59:47
【问题描述】:

如何在不存储整篇文章的情况下获取维基百科文章中指定单词的频率然后对其进行处理?例如,“印度”这个词在这篇文章中出现的次数有多少次https://simple.wikipedia.org/wiki/India

【问题讨论】:

    标签: python-3.x web-crawler information-retrieval mediawiki-api information-extraction


    【解决方案1】:

    这是一个逐行读取网页的简单示例。但是不能保证 HTML 被分解成 。 (在这种情况下,超过 1300 个。)

    import re
    import urllib.request
    from collections import Counter
    
    URL = 'https://simple.wikipedia.org/wiki/India'
    
    counter = Counter()
    
    with urllib.request.urlopen(URL) as source:
        for line in source:
            words = re.split(r"[^A-Z]+", line.decode('utf-8'), flags=re.I)
            counter.update(words)
    
    for word in ['India', 'Indian', 'Indians']:
        print('{}: {}'.format(word, counter[word]))
    

    输出

    > python3 test.py
    India: 547
    Indian: 75
    Indians: 11
    >
    

    如果它们出现在页面的 HTML 结构中,这也计算术语,而不仅仅是内容。

    如果您想专注于内容,请考虑Pywikibot python library,它使用首选的 MediaWiki API 来提取内容,尽管它似乎是基于您指出您正在尝试的“一次完整页面”模型避免。无论如何,该模块的文档指向您可能想要查看的类似但更高级的软件包列表。

    【讨论】:

    • 这是一个旧答案,但让我试试:是否可以计算一个特定单词在整个英语维基百科转储中出现的次数?
    • 您可以使用thisthis按用法列出单词。
    猜你喜欢
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-09
    • 1970-01-01
    相关资源
    最近更新 更多