2015-12-17 46 views
-5

我有许多复合术语,比如hello World,早安,晚安,...我想在我的语料库中找到它们,然后用它们的等价物替换它们作为helloWorld,goodMorning,goodNight。所以这样我就可以保留他们的概念。 我可以一个一个地做,但由于有很多复合术语,它非常繁琐。我需要用R语言来做到这一点。如何找到复合词,删除它们之间的空格,并将它们替换为我的语料库?

+1

你搜索了什么?你发现了什么?你到目前为止尝试了什么?请分享一些尝试。 –

+0

也许你可以看看'?gsub' – Vongo

+0

我已经尝试过gsub,但问题是我不想手动执行此操作,因为它需要很长时间。我在一个文本文件中使用了这些术语,每个复合术语用单独的一行代替,我正在寻找一些有用的代码来获取此文本文件,并删除它们之间的毯子,然后转到我的语料库并用新术语替换复合术语(没有毯子术语 – user4241750

回答

0

如果你所有的复合词用空格分隔只,你可以使用gsub

> x = c("hello World", "good Morning", "good Night") 
> y = gsub(pattern = " ", replacement = "", x = x) 
> print(y) 
[1] "helloWorld" "goodMorning" "goodNight" 

您可以随时添加更多的模式来pattern说法。阅读有关R herehere中正则表达式的更多信息。

编辑

@ user4241750:是的,但我只是想为特定化合物做到这一点 条件(有很多),不是所有在语料库中的条款,因为有 在许多其他方面语料库

如果您知道要更改的所有特定复合词,可以在docs[[j]]上指定它。说你想改变的唯一条款是“简单部分”和“早上好”:

terms.to.change = c("simple parts","good morning") 
for (j in seq(corpus)) { 
    positions.to.change = which(docs[[j]] %in% terms.to.change) 
    docs[[j]][positions.to.change] <- gsub(" ", "", docs[[j]][positions.to.change]) 
} 
+0

我有一个语料库,它有20个文本文件,我怎样才能用gsub在我的语料库中应用这些更改? – user4241750

+0

我已经尝试过gsub,但问题是我不想手动执行此操作,因为它需要很长时间。我在一个文本文件中使用了这些术语,每个复合术语用单独的一行代替,我正在寻找一些有用的代码来获取此文本文件,并删除它们之间的毯子,然后转到我的语料库并用新术语替换复合术语(没有毯子之间) – user4241750

+0

你能给一个简单的例子(在R代码中)你有什么? –

相关问题