废弃Wikipedia,使用群集

时间:2015-11-04 05:40:25

标签: python nlp nltk cluster-analysis sentiment-analysis

我是一名Python开发人员,目前正在开发一个与NLP和NLTK相关的项目。在这个项目中,需要大量的数据用于事故分析。所以我为此提出了两个问题

  1. 我在哪里寻找如此大量的数据。我的第一个偏好是维基百科,但我不知道如何从中获取数据?我是否需要废弃维基百科?

  2. 我应该如何整理所有这些数据,以便获得更好的搜索结果? K-means聚类会有用吗?

4 个答案:

答案 0 :(得分:1)

  1. "事件分析目的" - 是什么让你认为维基百科对此有所帮助? 太多无关数据更糟比没有"大"数据即可。流行的错误:假设您可以通过将随机数据投入其中来解决所有问题。

  2. 可以下载维基百科数据 - 只需查看他们的网站即可。您仍然需要了解Wiki标记,但至少您不必与爬虫进行斗争,因为您可以获得数据库转储。

  3. 文本的聚类分析特别困难。文本非常多样化,很少有聚类算法可以很好地处理噪声和稀疏数据。但是为了什么? "更好的搜索结果" - 这不是集群的用途。

  4. 一些一般性建议:

    • 从小处开始,直到你知道自己在做什么。
    • 评估如果您正在进行并且有任何改进 - 并且不要欺骗自己;批评你的成就。
    • 尝试随机的东西(维基百科,kmeans)不会让你达到你的目标。有太多无用的组合。你需要追求那些可能提供帮助的人(并快速评估他们 - 如果你从维基百科的路线开始,我担心你需要两周的时间才能处理"维基百科的大部分时间 - 它可能会采取行动,直到你意识到它不起作用 - 从小做起并集中注意力!)

答案 1 :(得分:0)

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

特别是,我觉得你可以为你的用例下载他们数据的XML转储。

答案 2 :(得分:0)

回答你的第一个问题:

除了使用像 BeautifulSoup Scrapy 这样的软件包进行抓取之外,还有一些类似wikipeidia in python的api可以用来从维基百科中获取数据

答案 3 :(得分:-1)

您的问题有点过于宽泛,无法在此讨论,但我可以根据您的要求(根据我自己的经验)给您一些想法:

首先,您可能需要设计(或使用)网络抓取机器人或其他东西,以从您想要的网站中提取文本。出于事故分析的目的,也许维基百科并不是那么好。也许新闻网络可以更好地处理您的案例,因为他们可以更好地对事件进行分类,包括事件。我不太了解Pythonic网页抓取工具,但我曾使用BeautifulSoup从博客中提取出足以满足我教育目的的文本。

其次,群集本身是一个很大的讨论问题,你不能在这里简单地问它,但是有用Python进行聚类的算法(或者你必须自己实现一个!) )K-Means,基于神经元的算法,EM算法等等。我曾经使用过SOM ANN(a.k.a Kohonen的神经网络)实现。你应该考虑哪一个适合你的需要。