【问题标题】:Named Entity Recognition for Tweets using R使用 R 对推文进行命名实体识别
【发布时间】:2014-12-09 14:21:48
【问题描述】:

我的目标:我正在尝试识别 推文中的位置(如果存在)。

我尝试使用 Opennlp 包并多次遇到“内存不足错误”,尽管增加了堆内存大小。 代码在识别 6-8 条推文的位置后终止。

我只对 100-150 个位置(范围列表) 感兴趣,但是将推文中的每个单词与推文集合的列表进行匹配是非常低效的。

我想知道除了“NLP”之外,是否有任何合适的包可以使用 R 为 Twitter 数据启用 NER ?

另外,执行此例程的最有效方法是什么

我对 python/Java不是很熟悉,因此想使用 R。

谢谢。

【问题讨论】:

    标签: r twitter


    【解决方案1】:

    好的,所以我解决了内存不足的问题。 我为每条推文重复导入模型。 所以我现在评论了那一点..工作正常。

    这是我的代码:

    #Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre7') # for 64-bit version\
    
    #Sys.setenv(JAVA_HOME='C:\\Program Files (x86)\\Java\\jre7') # for 32-bit version
    
    #library(rJava)
    
    #install.packages("openNLPmodels.en_1.5-1.tar.gz", repos = "http://datacube.wu.ac.at/", type = "source")
    
    #library(openNLP)
    
    #library(NLP)
    
    #install en-ner-location.bin from http://opennlp.sourceforge.net/models-1.5/ and save in location given below
    
    
    
    for(i in 1:nrow(quake1))
    
    {
    
    s<-quake1$text[i]
    
    #sent_token_annotator <- Maxent_Sent_Token_Annotator()
    
    #word_token_annotator <- Maxent_Word_Token_Annotator()
    
    a2 <- annotate(s, list(sent_token_annotator, word_token_annotator))
    
    #entity_annotator <- Maxent_Entity_Annotator(kind="location",language="en",model='C:\\Program Files\\R\\R-3.1.1\\library\\openNLP\\en-ner-location.bin')
    
    a3<-entity_annotator(s, a2)
    
    location<-""
    
    if(length(a3)>0) {
    
    for(j in 1:length(a3))
    
    location<-paste(location,substring(s,a3$start[j],a3$end[j]),sep=";")
    
    }
    
    quake1$location[i]<-location
    
    }
    

    新目标:我想确保像#SanJose 这样的位置也能被识别出来。由于大多数主题标签 w.r.t 位置都是单个字符串。

    【讨论】:

    • 使用正则表达式。可能看起来像“#[A-Za-z][a-z]+([A-Z][a-z]+)*”
    猜你喜欢
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多