2015-12-17 45 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代碼中)你有什麼? –

相關問題