2013-08-24 4 views
6

Ich versuche Aussagen aus dem Internet zu sammeln, indem für Sätze mit folgendem Aufbau der Suche:Wie würde ich so viele Instanzen des Textes sammeln: "[Thema] sind ..." aus dem Internet?

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

So zum Beispiel, ich will suchen und alle Sätze zu sammeln, die mit „Computer sind [rest Start von Satz]". Was würde in so etwas wie:

  • Computer sind ärgerlich.
  • Computer sind großartig.
  • Computer sind teuer.
  • Etc.

Was ich will ist von Anfang des Satzes, bis die Zeit, alles sammeln (vorzugsweise durch die Rate des Auftretens sortiert).

Gibt es eine Möglichkeit, dies mit vorhandenen Suchmaschinen zu tun, oder müsste ich einen Bot/Scraper bauen?

+1

Möglicherweise können Sie die [HTML-Code-Suchmaschine] (http://globalogiq.com/htmlcodesearch.htm) von Globalogic verwenden, mit der Sie Webseiten auf der HTML-Quellebene durchsuchen und reguläre Ausdrücke verwenden können. Ich habe es nicht versucht, also kann es vielleicht nicht tun, was du willst. –

+0

@MrLister: Sieht aus wie eine gute Idee, aber sie sammeln nur HTML von Homepages (also keine verschachtelten Seiten).Das ist ziemlich bedauerlich, weil ich auch verschachtelte Seiten durchsuchen möchte, da sonst die Ergebnisse eher spärlich sein können. Abgesehen davon ist es auch ein kostenpflichtiger Service, und ich würde gerne eine langfristige Lösung finden. –

+0

Keine wirklich beste oder definitive Antwort. Im Grunde ist dies schwierig, und es erfordert entweder viel Zeit. Crawlen oder Verwenden bereits existierender Datenbanken (und Festlegen, wozu sie in der Lage sind). –

Antwort

2

korrigiert werden Sie werden mit einer Liste von Substantiven müssen beginnen Sie Interessiert, dann ziehe für jeden relevante Sätze auf.

Muss es aus dem Internet sein? Es gibt eine Reihe von Zusammenstellungen von Englisch, die Sie durchsuchen können: http://en.wikipedia.org/wiki/Text_corpus

Sie müssen noch einige reguläre Ausdrücke schreiben, um herauszufiltern, was Sie nicht wollen.

Sie könnten auch Google-Such-API verwenden und nach Dingen wie computers are * suchen, Sie müssen die Daten immer noch filtern.

1

Wenn es Ihnen nichts ausmacht, Ruby zu verwenden, gibt es eine Bibliothek namens spidr, die Seiten spinnen kann. Es gibt auch eine Bibliothek namens "treat", die NLP-fähig ist.

würde ich auch einen Blick auf yubnub

+0

Ich habe in yubnub geschaut, aber wie würde ich das verwenden, um nach den Informationen zu suchen, die ich versuche zu bekommen? –

2

Es Sie bestimmte Zahlen nicht geben, aber man kann über die Google Suggest API

Eg beliebt (oft lustig) Ergebnisse erhalten:

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

..welche wie etwas zurückgibt:

<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> 

Es ist erwähnenswert, dass Google tut es üblich, Magie, die Ergebnisse, zum Beispiel, um zu versuchen und zu verbessern, wenn Sie versuchen, die falsch geschriebenen Compuuter is suchen, wird es zu Computer is

+0

Dem stimme ich zu. Keine Notwendigkeit, das Rad neu zu erfinden, es sei denn, es ist für ein Schulprojekt. Lehrer lieben es, die Schüler das Rad neu zu erfinden: D –

+0

Das ist die Art von was ich suchte, aber es gibt mir nur etwa 8 Ergebnisse für jede Abfrage. Was ich suche, ist eine Menge Ergebnisse, so viel wie möglich (und wie Sie sagten, gibt es keine spezifischen Zahlen, was die weitere Analyse etwas schwieriger macht). –

+0

@ Samuel Yeh, es ist ziemlich begrenzt. Sie können das normale Google-Such-API ausprobieren, das die geschätzte Anzahl der Ergebnisse für jeden Vorschlag angibt – dbr

0

Sie können Zugriff auf einen massiven Korpus von Webseiten mit dem Common Crawl Projekt erhalten. Schreiben Sie einen Hadoop MapReduce-Job, der auf AWS ausgeführt werden soll, und extrahieren Sie die Seiten, an denen Sie interessiert sind. Details und Lernprogramme sind auf ihrer Website verfügbar.

Verwandte Themen