Text Mining в R - как исключить полные фразы / предложения из анализа текста - PullRequest
0 голосов
/ 28 мая 2020

Я работаю над 160 отдельными ответами на опрос. Я запустил код R для создания после очистки простого облака слов и некоторого анализа чувствительности. Однако анализ включает в себя весь текст из шаблона, который респондентам было предложено заполнить, такой как вводный текст, инструкции, имя, компания, адрес, а также все заголовки разделов и представленные вопросы. Поскольку весь этот шаблонный текст будет повторяться для каждого из 160 ответов, это искажает частоту слов в ответах. Есть ли в R метод исключения из анализа не только отдельных слов (по стоп-словам или созданию мистических слов), но и полных сообщений или фраз, чтобы весь текст в шаблоне можно было игнорировать и не включать как часть набора ответов? Я не могу поделиться ответами из-за уверенности, но я могу поделиться пустым шаблоном, который содержит весь текст, который я sh должен исключить из анализа, доступный по адресу https://www.economy-ni.gov.uk/energy-strategy-call-for-evidence.

Dummy данные в R:

[50] «2. Энергетика в Северной Ирландии»
[51] «Q1. Какие уроки мы можем извлечь из других источников в отношении энергии в рамках«
[52] » всеобъемлющей рамочной программы действий по борьбе с изменением климата? »
[53]« Q2. Каковы основные соображения для декарбонизации энергетического сектора Северной Ирландии «
[54]» с учетом существующих связей с другими юрисдикциями? »
[55]« Q3 . В какой степени Северной Ирландии следует выполнять ключевые рекомендации по энергетике «
[56]» из отчета CCC «Сокращение выбросов в Северной Ирландии» «
[57]»? »
[58 ] «Q4. Согласны ли вы с 30-летним сроком? Если нет, укажите предпочитаемый вами подход и причины«
[59] ».»
[60] «Текст ответа респондента xxxxxxxx blahblahvlahblah»
[61] «3. Энергетический переход на севере. rn Ирландия "
[62]" Q5. Каковы уникальные характеристики Северной Ирландии, которые должны быть учтены «
[63]» при переходе на net нулевой углеродной энергии? »
[64]« Q6. Ваша организация предпринимает или планирует осуществлять проекты в поддержку «
[65]» перехода к энергетике? Если да, укажите дополнительные сведения. "
[66]« Текст ответа респондента xxxxxxxx blahblahvlahblah »

В этом подмножестве данных я хочу sh исключить стандартный текст в строках с 50 по 59 и снова строки с 61 по 65, так как они содержат один и тот же текст во всех ответах, т.е. каждая строка во всех ответах будет каждый раз начинаться с одного и того же текста.

Начальные строки Текст ответа респондента являются фиктивными данные в иллюстративных целях и будут отличаться каждый раз, когда ответ на раздел / вопросы будет повторяться. В этом примере я хотел бы сохранить текст в строках 60 и 66 для анализа.

Стандартный текст, для исключения, не всегда будет одинаковым номером строки в каждом ответе / файле. Это вызвано тем, что ответы выполняются в нескольких строках.

Спасибо Стивен

Ответы [ 2 ]

1 голос
/ 28 мая 2020

Вот начальный подход к вашей проблеме интеллектуального анализа текста (изначально учитывая трудности с определением правил).

Прежде всего, некоторые данные (обратите внимание, что я добавил еще несколько строк респондентов):

x <- c("2. Energy in Northern Ireland",
       "Q1. What lessons can we learn from elsewhere in addressing energy within an",
       "overarching climate action framework?",
       "Q2. What are the key considerations for decarbonising Northern Ireland’s energy",
       "sector given existing linkages to other jurisdictions?",
       "Q3. To what extent should Northern Ireland implement the key energy-related",
       "recommendations from the CCC ‘Reducing Emissions in Northern Ireland’",
       "report?",
       "Q4. Do you agree with the 30-year timeframe? If not, please state your preferred",
       "approach and reasons.",
       "Respondent response text xxxxxxxx blahblahvlahblah",
       "blahblablah and so on",
       "3. The Energy Transition in Northern Ireland",
       "Q5. What are the unique characteristics of Northern Ireland that need to be",
       "considered in a net zero carbon energy transition?",
       "Q6. Is your organisation undertaking or planning to undertake projects to support",
       "the energy transition? If so, please provide further details.",
       "Respondent response text xxxxxxxx blahblahvlahblah",
       "blah blah blah and so on",
       "some more blah blah")

Решение теперь сначала вставляет строки вместе с paste, а затем, используя gsub, удаляет те части, которые встречаются между числами (заголовок) и ?, а также предложения, начинающиеся с If:

trimws(gsub("\\d.*\\?|If.*\\.", "", paste(x, collapse = " ")))

Результат:

[1] "Respondent response text xxxxxxxx blahblahvlahblah blah blah blah and so on some more blah blah"

Вам это поможет?

1 голос
/ 28 мая 2020

Не уверен, что части, которые вы хотите, всегда начинаются с «Респондент ...», но если да, то вы можете сделать что-нибудь простое, например

library(tidyverse)

df %>% 
filter(str_starts(your_data_column, 'Respondent'))
...