2017-04-17 120 views
0

我有一個文本文件文本挖掘中的R

「我寫今天。今天我想寫作的。今天是偉大的一天」

我試圖找到在提到「今天寫作」的句子中有多少個實例。可能發生的情況是,「今天寫作」並不在一起,但仍然是同一句子的一部分(例如:第二句),也需要捕捉它。

所以在上面的例子中,我的計數是2

任何想法如何做到這一點的R' TIA

+0

你不能使用正則表達式? ((\ bwriting \ b。* \ btoday \ b)|(\ btoday \ b。* \ bwriting \ b)) – Dieter

+0

我是新的正則表達式。它只會在句子中搜索嗎? – user35655

+0

因爲我可以像「今天是美好的一天,文字是我的愛好」這樣的文字。有了這個例子,計數應該是0. – user35655

回答

2

有很多方法可以做到這一點,但tidytext,

library(tidyverse) 
library(tidytext) 

data_frame(text = "I am writing today. Today I am thinking of writing. Today is great day") %>% 
    unnest_tokens(sentence, text, 'sentences', to_lower = FALSE) %>% 
    mutate(sentence_number = row_number()) %>% 
    unnest_tokens(word, sentence, 'words', drop = FALSE) %>% 
    group_by(sentence_number) %>% 
    filter('today' %in% word, 'writing' %in% word) %>% 
    select(-word) %>% distinct() %>% ungroup() %>% 
    mutate(count = n()) 

#> # A tibble: 2 × 3 
#>       sentence sentence_number count 
#>        <chr>   <int> <int> 
#> 1    I am writing today.    1  2 
#> 2 Today I am thinking of writing.    2  2 
+0

太棒了...所以,我只需要拿最後一行來獲取發生次數...謝謝。 – user35655

+0

如果你想要計數,你可以用'ungroup()%>%summarize(count = n_distinct(sentence_number))替換'filter'後面的所有內容' – alistaire

-1
  1. 小寫的一切。
  2. 按點分割。
  3. 預處理的句子(詞幹/旅鼠/停用詞)
  4. 應用正則表達式 ((\ bwriting \ b \ btoday \ b)中。|(\ btoday \ b \ bwriting \ b))的
+0

謝謝Dieter。不知何故卡住了發生次數。 – user35655