6

我正在尝试通过搜索具有以下结构的句子来从网络上收集语句:

[subject] [are/is] [rest of sentence].

例如,我想搜索并收集所有以“Computers are [rest of sentence]”开头的句子。这可能会导致以下结果:

  • 电脑很烦人。
  • 电脑很棒。
  • 电脑很贵。
  • 等等。

我要收集的是从句子开头到句号的所有内容(最好按出现率排序)。

有没有办法用现有的搜索引擎做到这一点,或者我必须建立一个机器人/刮板?

4

4 回答 4

2

它没有给您具体的数字,但您可以通过Google Suggest API获得流行(通常很有趣)的结果

例如:

http://suggestqueries.google.com/complete/search?output=toolbar&hl=en&q=Computers%20are

..它返回类似:

<toplevel>
<CompleteSuggestion>
  <suggestion data="computers are your future"/>
</CompleteSuggestion>
<CompleteSuggestion>
  <suggestion data="computers are racist"/>
</CompleteSuggestion>
<CompleteSuggestion>
  <suggestion data="computers are us"/>
</CompleteSuggestion>
<CompleteSuggestion>
  <suggestion data="computers are stupid"/>
</CompleteSuggestion>
<CompleteSuggestion>
  <suggestion data="computers are illegal in florida"/>
</CompleteSuggestion>
[...]
</toplevel>

值得注意的是,谷歌会像往常一样尝试改进结果,例如,如果您尝试搜索拼写错误的Compuuter is,它将被更正为Computer is

于 2013-08-29T13:56:16.350 回答
2

您需要从您感兴趣的名词列表开始,然后为每个名词提取相关的句子。

需要来自网络吗?您可以通过以下方式搜索许多英文汇编: http ://en.wikipedia.org/wiki/Text_corpus

您仍然需要编写一些正则表达式来过滤掉您不想要的内容。

您还可以使用 Google 搜索 API 并搜索computers are *您仍需要过滤数据的内容。

于 2013-09-03T18:18:01.553 回答
1

如果你不介意使用 ruby​​,有一个名为 spidr 的库,它可以爬取页面。还有一个名为 Treat 的库,它能够进行 NLP。

我还要看看yubnub

于 2013-08-29T13:44:33.073 回答
0

您可以使用Common Crawl项目访问大量网页语料库。编写一个 Hadoop MapReduce 作业以在 AWS 上运行并提取您感兴趣的页面。详细信息和教程可在其网站上找到。

于 2013-09-04T09:57:08.463 回答