2015-11-04 86 views
-1

我是一名Python开发人员,目前正在从事一项与NLP和NLTK相关的项目。在这个项目中,需要大量用于事件分析的数据。因此,我给了2个问题报废维基百科,使用集群管理此数据

  1. 我在哪里寻找如此高的数据量。我的首选是维基百科,但我不知道如何从中访问数据?我是否需要取消维基百科?

  2. 我应该如何组织这些数据,这样我可以有更好的搜索结果? K均值聚类是否有用?

+1

对不起,但你的问题太广泛了SO。 SO主要针对与代码相关的特定编程问题。 –

+0

查看https://github.com/alvations/SeedLing来处理维基百科转储。 – alvas

+0

仅供参考这个词是“刮”。 – alexis

回答

0

我不知道你的第二个问题的答案。但是对于你的第一个问题,你可以获得维基百科数据的快照。您可以查看这link,其中维基百科自己根据您要构建的应用程序描述了不同的方式来使用他们的数据。请注意,维基百科不建议运行时抓取网站。

特别是,我的感觉是,你使用的情况下,你可以下载自己的数据的XML转储。

0

回答你的第一个问题:

除了BeautifulSoup或Scrapy刮使用封装像有一些API的像wikipeidia in python可用于从维基百科获取数据

+2

如果你想下载整个英文维基百科,得到[dump](https://dumps.wikimedia.org/)要好得多。 – tripleee

-1

你的问题有点有点过于宽泛,在这里讨论,但我可以给你关于你问什么了(根据我自己的经验):

首先,你可能需要设计(或使用)的Web爬行RO机器人或从你想要的网站中提取文本。为了事件分析的目的,也许维基百科不太好。也许新闻网络在您的案例中效果更好,因为它们可以更好地对事件进行分类,包括事件。我对Pythonic网络抓取工具知之甚少,但我曾经使用BeautifulSoup从weblogs中提取文本,这足以满足我的教育目的。其次,聚类本身是一个讨论的重要问题,你不能简单地在这里提问,但是有一些算法可以用Python进行聚类(或者你必须自己实现一个)K-Means,基于神经的算法,EM算法等等。我曾经使用SOM ANN(又名Kohonen的神经网络)实现。你应该考虑哪一个适合你的需要。

1
  1. “事件分析的目的” - 什么让你觉得维基百科对此有帮助? 太多不相关的数据是更糟比没有“大”数据。流行的错误:假设你可以通过向其中扔入随机数据来解决所有问题。

  2. 维基百科数据可以下载 - 只需看看他们的网站。您仍然需要了解Wiki标记,但至少您不必与抓取工具发生冲突,因为您可以获取数据库转储。

  3. 对文本的聚类分析特别困难。文本非常多样化,很少有聚类算法可以很好地处理嘈杂和稀疏的数据。但是为了什么? “更好的搜索结果” - 这不是聚类的目的。

一些一般性的建议:

  • 从小做起,直到你知道你在做什么。
  • 评价如果你在轨道上并有任何改善 - 不要对自己撒谎;批评你的成就。
  • 尝试随机事物(维基百科,kmeans)不会让你到你的目标。有太多无用的组合。你需要追求那些有可能帮助的人(并快速评估他们 - 如果你从维基百科路线开始,恐怕需要两周时间才能处理“大部分”维基百科 - 这可能需要等到你意识到这是行不通的 - 开始小而专注!)