r - 从作者单位中提取国家名称

标签 r text nlp

我目前正在探索从作者单位(PubMed 文章)中提取国家名称的可能性,我的示例数据如下所示:
Mechanical and Production Engineering Department, National University of Singapore.Cancer Research Campaign Mammalian Cell DNA Repair Group, Department of Zoology, Cambridge, U.K.Cancer Research Campaign Mammalian Cell DNA Repair Group, Department of Zoology, Cambridge, UK.Lilly Research Laboratories, Eli Lilly and Company, Indianapolis, IN 46285.
最初我尝试删除标点符号并将向量拆分为单词,然后将其与来自维基百科的国家名称列表进行比较,但我没有成功。

任何人都可以请建议我更好的方法吗?我更喜欢 R 中的解决方案因为我必须做进一步的分析并在 R 中生成图形.

最佳答案

这是一个简单的解决方案,可以让您开始一些工作。它利用 map 包中包含城市和国家数据的数据库。如果你能得到一个更好的数据库,修改代码应该很简单。

library(maps)
library(plyr)

# Load data from package maps
data(world.cities)

# Create test data
aa <- c(
    "Mechanical and Production Engineering Department, National University of Singapore.",
    "Cancer Research Campaign Mammalian Cell DNA Repair Group, Department of Zoology, Cambridge, U.K.",
    "Cancer Research Campaign Mammalian Cell DNA Repair Group, Department of Zoology, Cambridge, UK.",
    "Lilly Research Laboratories, Eli Lilly and Company, Indianapolis, IN 46285."
)

# Remove punctuation from data
caa <- gsub(aa, "[[:punct:]]", "")    ### *Edit*

# Split data at word boundaries
saa <- strsplit(caa, " ")

# Match on cities in world.cities
# Assumes that if multiple matches, the last takes precedence, i.e. max()
llply(saa, function(x)x[max(which(x %in% world.cities$name))])

# Match on country in world.countries
llply(saa, function(x)x[which(x %in% world.cities$country.etc)])

这是城市的结果:
[[1]]
[1] "Singapore"

[[2]]
[1] "Cambridge"

[[3]]
[1] "Cambridge"

[[4]]
[1] "Indianapolis"

国家的结果:
[[1]]
[1] "Singapore"

[[2]]
[1] "UK"

[[3]]
[1] "UK"

[[4]]
character(0)

通过一些数据清理,您可以对此做一些事情。

关于r - 从作者单位中提取国家名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5318076/

相关文章:

r - 求两个向量的平均最大配对

R:通过多个答案拆分数据框

text - 如何向形状叠加层添加阴影而不遮挡其文本? swift 用户界面

twitter - twitter 有停用词列表吗?

python - 日语分词器的模块导入问题

r - R 中的多尺度层次聚类错误

R 调用具有超过 2 个参数的中缀函数

Python 3.x 打印特定标题后的行数

android - 如何从数组列表中获取测验答案?

java - 如何使用 stanford-parser 从文本文件中提取每个句子?