У меня есть некоторые проблемы с bigram в области интеллектуального анализа текста с использованием R в последнее время. Цель состоит в том, чтобы найти значимые ключевые слова в новостях, например, «умный автомобиль» и «интеллектуальный анализ данных».Форма биграмм без стоп-слов в R
Скажем, если у меня есть строка выглядит следующим образом:
"IBM have a great success in the computer industry for the past decades..."
После удаления стоп-слова ("есть", "а", "в", "в" и "на"),
"IBM great success computer industry past decades..."
В результате будут возникать такие биграммы, как «компьютер успеха» или «прошлое промышленности».
Но мне действительно нужно, чтобы между двумя словами не существовало стоп-слов, таких как «компьютерная индустрия», является ярким примером биграма для того, что я хочу.
Часть моего кода ниже:
corpus <- tm_map(corpus, removeWords, stopwords("english"))
corpus <- tm_map(corpus, stripWhitespace)
corpus <- tm_map(corpus, stemDocument)
NgramTokenizer = function(x) {unlist(lapply(ngrams(words(x), 2), paste, collapse = " "), use.names = FALSE)}
dtm <- TermDocumentMatrix(corpus, control = list(tokenize = NgramTokenizer))
Есть ли способ, чтобы избежать результата со словами, как «успех компьютера» при подсчете ТФ?
Может быть, вы можете сначала разделить ваше предложение к различным подразделам предложений по игнорируемых слов. Затем продолжим идентификацию биграмм. –
@VenYao Как я могу разделить предложение на определенную функцию? текст, который я импортирую, используя readLines. Что делать, если текст представляет собой большое количество слов? Я боюсь за проблему с эффективностью. –
используйте функцию 'strsplit'. Эта функция быстрая. –