2015-10-19 44 views
0

從文本的位置列表我有一個包含許多字[不是句子]我想知道我怎麼能提取所有對應的位置在該字符串,例如詞的字符串:提取,使用R

text<-c("China","Japan","perspective","United Kingdom","formatting","clear","India","Sudan","United States of America","Bagel","Mongolian",...) 

輸出應該是:

> China, Japan, United Kingdom, Mongolian 

東西的類型。基本上我正在從隨機文本中提取位置信息。 這是一個非常普遍的問題,我正在尋找如何建模我的解決方案的指導,是否有任何數據集或可用於比較或提取信息的東西。我不想逐字比較 我是機器學習和R編程的新手,任何指導都非常感謝。

+0

如果所有的位置是國家的,有多個國家的名單和你可以創建一個大的正則表達式模式,然後str_extract_all在你的文本中的國家。同樣,但城市更難。 – lawyeR

+1

一般來說,你應該看看['openNLP'](https://cran.rstudio.com/web/packages/openNLP/index.html)包。它有一個「命名實體識別」組件,可以使用其中一個[位置模型](http://opennlp.sourceforge.net/models-1.5/)來執行您所需的操作。 – hrbrmstr

+0

它的模型在R 3.2.2不支持@hrbrmstr我想弄清楚如何使用「en-ner-location.bin」模型。任何想法如何做到這一點? –

回答

2

你可以試試這個 - 以及它如何運作真的取決於你的輸入變量是乾淨的,但它是否適合你的數據。例如:

library(countrycode) 
text[!is.na(countrycode(text, "country.name", "continent"))] 

[1] "China"     "Japan"     "United Kingdom"   
[4] "India"     "Sudan"     "United States of America" 
[7] "Mongolian" 
+0

它工作得很好,但我無法提取省份,城市等。對此有何建議?非常感謝。 –