2015-06-22 2 views
-1

Я хочу сгенерировать темы из моего текста на уровне фраз, а не на уровне слов, используя LDA (выделенное выделение Дирихле). Как я могу это сделать в R?Как я могу выполнить LDA (скрытое распределение Дирихле) на Noun Phrases в R вместо слов?

LDA интерпретирует документы как мешочные слова и создает темы с составляющими словами. Например, образец из текста «Арсенал выиграл Кубок ФА за два года подряд в 2014 и 2015 годах. Это короли Северного Лондона», может привести к теме [Арсенал - 50%, FA - 20%, Кубок - 10%, лондон - 10%, король - 10%]

Я хочу, чтобы вернуть эту тему на уровне фраз, т.е. [Арсенал, Кубок Англии, к северу лондон]

+0

Ваш вопрос немного расплывчатый на данный момент. Можете ли вы дать более подробную информацию, желательно с некоторыми данными выборки и желаемым выходом? –

+0

@NickK Я сделал предложенное изменение и добавил пример. Мой вопрос очень прост, как выполнить LDA на уровне фраз, чтобы получать темы как распределение фраз, а не слов. – carora3

+0

'openNLP' pkg имеет подпрограммы, которые будут помечать каждое слово с типом грамматики (существительное, прилагательное и т. Д.) – hrbrmstr

ответ

2

I «Не знаю какого-либо способа вытаскивать фразы автоматически внутри R. Однако было бы возможно изменить входной текст таким образом, чтобы фразы сохранялись вместе с символами подчеркивания или другим символом. Например, вы можете сделать следующее:

example <- "Arsenal won FA cup in two consecutive years in 2014 and 2015. They are the kings of North London." 

phrases <- c("FA cup", "North London") 
phrasesNbsp <- gsub(" ", "_", phrases, fixed = TRUE) 
for (i in 1:length(phrases)) { 
    example <- gsub(phrases[i], phrasesNbsp[i], example, fixed = TRUE) 
} 
lda::lexicalize(example)