Подмножество кадра данных в R, используя ключевые слова, которые появляются в первых 100 словах - PullRequest
0 голосов
/ 01 октября 2019

У меня есть датафрейм, содержащий информацию о новостных статьях (заголовки, даты, контент и т. Д.). Я хотел бы установить подкадр для этих данных, отфильтровывая содержание новостных статей по ключевым словам. Тем не менее, я хотел бы применить эти ключевые слова в первых 100 словах контента.

До сих пор мне удавалось подбирать фрейм данных путем определения ключевых слов в каждой из статей, как показано ниже. Однако мне нужно определить эти ключевые слова в первых 100 словах каждой статьи.

#Dataframe
df_tiempo_noticias_farc1

#Filtering the dataframe by using key words
key_words_filter <- c("acuerdo de paz", "acuerdos de paz", "acuerdo con las farc", "acuerdos con las farc",
                      "acuerdo entre el gobierno y las farc", "acuerdo entre las farc y el gobierno", 
                      "proceso de paz", "diálogos con las farc", "diálogos en la habana", "diálogos de la habana",
                      "diálogos de paz", "negociación con las farc", "negociaciones con las farc", "negociación en la habana",
                      "negociaciones en la habana", "negociadores del gobierno y las farc", 
                      "negociadores de las farc y el gobierno", "plebiscito", "firma de la paz")

subset_tiempo_kwords <- df_tiempo_noticias_farc1[grep(paste0(key_words_filter, collapse = "|"), df_tiempo_noticias_farc1$content),]

Вот пример данных

  > dput(subset_tiempo_kwords[1:2, 5])
[1]con la firma del nuevo acuerdo entre el gobierno y las farc y su refrendación en senado y cámara, las cartas están echadas y las apuestas, hechas. pero más allá de quién gane la partida, el resultado es que vamos al año y medio más difícil en la historia reciente del país.pese a que hubo cambios de fondo en el acuerdo final, como era previsible, no hubo acuerdo con los del no (no vale ya discutir si se les podía haber dado más juego o si, en el fondo, solo lo querían para dar largas). esto significa que la verdadera refrendación de lo acordado entre el gobierno y las farc se traslada a las elecciones del 2018.el país sigue tan dividido como antes del plebiscito (aunque más apático con la paz, a cuya firma ha asistido cinco veces desde junio). la polarización y el encono que signaron la campaña del plebiscito solo fueron el abrebocas de lo que nos espera hasta las elecciones presidenciales, que serán el veredicto final sobre lo acordado.el gobierno y las farc decidieron firmar el acuerdo y pasarlo por el congreso. el bloque del no ya anunció que opondrá, dentro del capitolio, recursos legales, como buscar un referendo por firmas, y fuera de él, llamados que bordean la ruptura institucional, como la revocatoria del congreso o la resistencia civil.todo indica que, aunque menos legítimo, el camino del congreso se escogió como más seguro, contando con las mayorías oficiales (que ya se exhibieron en el 75-0 de la refrendación en senado). arriesgada apuesta, pues esa vía puede terminar no siendo ni legítima ni segura.otro plebiscito sería largo, costoso y polarizador, como dice el gobierno. pero el legislativo no solo confiere menos legitimidad que cualquier consulta popular para refrendar el acuerdo, sino que es una de las instituciones más desprestigiadas del país. refrendar con una proposición, la fórmula de menor jerarquía en la mecánica legislativa, solo acentuará ese pecado de origen.pero la fragilidad de la refrendación vía congreso no es lo más grave. las grandes sorpresas pueden ser las de la implementación.el congreso es una vía de alto riesgo para los acuerdos. el gobierno ha puesto velas, cirios y candelabros para que la corte constitucional reviva la famosa ‘vía rápida’ para que los parlamentarios aprueben, veloces y sin cambios, lo que les proponga para implementar el acuerdo. pero, como pintan las cosas, es más probable que le toque irse por la vía ordinaria.con lo cual tomaría todo el 2017 poner a funcionar la jurisdicción especial para la paz, blindar jurídicamente el acuerdo y aprobar las leyes para hacerlo realidad. y los congresistas podrían introducir modificaciones inesperadas –como ya lo sugirió cambio radical respecto al sistema de justicia–. esto haría más traumático y lento el proceso de desmovilización de las farc. y pondría en lo más álgido de la campaña electoral un proceso de paz inconcluso y lleno de tensiones.ni el plebiscito ni la renegociación del nuevo acuerdo zanjaron la división entre partidarios del sí y del no. el gobierno, con sus mayorías en el congreso, puede lograr ahora blindar constitucionalmente lo acordado. pero otro gobierno, con otras mayorías, puede echar todo abajo –y a eso se la juega el bloque del no para el 2018–.todo este año y medio que falta hasta las elecciones presidenciales estará signado por esa polarización, que está tan viva como antes del plebiscito. el trámite de lo acordado en el congreso no hará sino agudizarla. y, mientras tanto, estará en curso, con más o menos sobresaltos, el complejo proceso de desmovilización, dejación de armas y reintegración de las farc.la ‘crispación nacional’ se va a profundizar hasta que en el 2018 se decida finalmente quién ganó: la paz o el no.\r* * * *\ry el eln... para enero.álvaro sierra restrepocortapalo@gmail.com@cortapalo, 

[2] la comisión interamericana de derechos humanos (cidh) aplaudió este jueves la firma y aprobación del acuerdo de paz con las farc que fue ratificado esta semana tanto por la cámara como por el senado colombiano.\ren un comunicado expedido desde washington, el ente hemisférico expresa a su vez su beneplácito por los esfuerzos del gobierno por incluir en el nuevo acuerdo algunas propuestas de quienes se oponían al documento en general.\r\"la comisión interamericana reconoce los esfuerzos del estado para la renegociación del acuerdo de paz, en atención al pluralismo efectivo necesario en una sociedad democrática. la comisión ve con beneplácito que, tras tomar en cuenta las propuestas planteadas por los grupos que cuestionaron el acuerdo anterior y llamaron a votar en contra del mismo en el plebiscito del 2 de octubre pasado, colombia haya llegado a un nuevo acuerdo para la terminación del conflicto con las farc - ep\", dice la cidh. (le puede interesar: 'debemos presentar la ley de amnistía la próxima semana': mininterior)\ren el comunicado la comisión menciona la reunión que sostuvieron recientemente con el presidente juan manuel santos en la que se discutió \"la actual precariedad del cese al fuego y la futura implementación del acuerdo en colombia\".\rsegún este órgano, el presidente de la cidh, james cavallaro, le expresó a santos que el ente que encabeza continuaría monitoreando que la implementación del acuerdo se realice dentro del \"respeto y garantía a los estándares interamericanos\" de derechos humanos.\r\"la comisión mantiene su convicción respecto a que la consolidación de la paz es un requisito indispensable para el ejercicio y respeto de los derechos humanos. la cidh continúa comprometida con la búsqueda de la paz en colombia y dispuesta a colaborar en este esfuerzo, y en ese marco dará seguimiento a la implementación del nuevo acuerdo, en el marco de sus funciones\", dijo caravallo.\ren el comunicado, no obstante, la cidh resalta que el texto del nuevo acuerdo que les entregó santos en la reunión cambió antes de ser aprobado. (además: lo que viene tras la refrendación de la paz en el congreso)\raunque no menciona a cuál ajuste se refiere, la única modificación conocida al nuevo acuerdo que se llegó con las farc fue uno en el que se eliminó un artículo que hacía referencia a la responsabilidad de los militares por las acciones de sus subalternos.\ral respecto, el comisionado para colombia, josé de jesús orozco, destacó que \"continuarán dando seguimiento a la situación de los derechos humanos en colombia, a fin de que la implementación efectiva del acuerdo permita satisfacer los estándares internacionales de verdad, justicia y reparación en el contexto de transición hacia la paz\".\rpor su parte el embajador de colombia ante la oea, andrés gonzález, resaltó el apoyo de la comisión como \"de la mayor importancia porque el gobierno ha querido que el acuerdo de paz cumpla con todos los estándares internacionales. su declaración es esclarecedora: el camino más apropiado para prevenir las graves violaciones de derechos humanos es la terminación del conflicto armado. de acuerdo con gonzález el respaldo de la cidh representa \"una sólida columna de legitimidad jurídica internacional. todo el sistema interamericano se ha pronunciado por la paz de colombia como la paz de américa. primero, el consejo permanente de la oea por unanimidad. ahora la entidad rectora del continente en derechos humanos\".\rsergio gómez masericorresponsal de el tiempowashington ")

Как я могу это сделать? Спасибо за любую помощь!

Ответы [ 3 ]

1 голос
/ 01 октября 2019

Понял, используйте первый фильтр для создания подмножества и создайте шаблон регулярного выражения с помощью оператора или "|"между каждым ключевым словом:

df <- tribble(~A,
              "[1]con la firma del nuevo acuerdo entre el gobierno y las farc y su refrendación en senado y cámara, las cartas están echadas y las apuestas, hechas. pero más allá de quién gane la partida, el resultado es que vamos al año y medio más difícil en la historia reciente del país.pese a que hubo cambios de fondo en el acuerdo final, como era previsible, no hubo acuerdo con los del no (no vale ya discutir si se les podía haber dado más juego o si, en el fondo, solo lo querían para dar largas). esto significa que la verdadera refrendación de lo acordado entre el gobierno y las farc se traslada a las elecciones del 2018.el país sigue tan dividido como antes del plebiscito (aunque más apático con la paz, a cuya firma ha asistido cinco veces desde junio). la polarización y el encono que signaron la campaña del plebiscito solo fueron el abrebocas de lo que nos espera hasta las elecciones presidenciales, que serán el veredicto final sobre lo acordado.el gobierno y las farc decidieron firmar el acuerdo y pasarlo por el congreso. el bloque del no ya anunció que opondrá, dentro del capitolio, recursos legales, como buscar un referendo por firmas, y fuera de él, llamados que bordean la ruptura institucional, como la revocatoria del congreso o la resistencia civil.todo indica que, aunque menos legítimo, el camino del congreso se escogió como más seguro, contando con las mayorías oficiales (que ya se exhibieron en el 75-0 de la refrendación en senado). arriesgada apuesta, pues esa vía puede terminar no siendo ni legítima ni segura.otro plebiscito sería largo, costoso y polarizador, como dice el gobierno. pero el legislativo no solo confiere menos legitimidad que cualquier consulta popular para refrendar el acuerdo, sino que es una de las instituciones más desprestigiadas del país. refrendar con una proposición, la fórmula de menor jerarquía en la mecánica legislativa, solo acentuará ese pecado de origen.pero la fragilidad de la refrendación vía congreso no es lo más grave. las grandes sorpresas pueden ser las de la implementación.el congreso es una vía de alto riesgo para los acuerdos. el gobierno ha puesto velas, cirios y candelabros para que la corte constitucional reviva la famosa ‘vía rápida’ para que los parlamentarios aprueben, veloces y sin cambios, lo que les proponga para implementar el acuerdo. pero, como pintan las cosas, es más probable que le toque irse por la vía ordinaria.con lo cual tomaría todo el 2017 poner a funcionar la jurisdicción especial para la paz, blindar jurídicamente el acuerdo y aprobar las leyes para hacerlo realidad. y los congresistas podrían introducir modificaciones inesperadas –como ya lo sugirió cambio radical respecto al sistema de justicia–. esto haría más traumático y lento el proceso de desmovilización de las farc. y pondría en lo más álgido de la campaña electoral un proceso de paz inconcluso y lleno de tensiones.ni el plebiscito ni la renegociación del nuevo acuerdo zanjaron la división entre partidarios del sí y del no. el gobierno, con sus mayorías en el congreso, puede lograr ahora blindar constitucionalmente lo acordado. pero otro gobierno, con otras mayorías, puede echar todo abajo –y a eso se la juega el bloque del no para el 2018–.todo este año y medio que falta hasta las elecciones presidenciales estará signado por esa polarización, que está tan viva como antes del plebiscito. el trámite de lo acordado en el congreso no hará sino agudizarla. y, mientras tanto, estará en curso, con más o menos sobresaltos, el complejo proceso de desmovilización, dejación de armas y reintegración de las farc.la ‘crispación nacional’ se va a profundizar hasta que en el 2018 se decida finalmente quién ganó: la paz o el no.\r* * * *\ry el eln... para enero.álvaro sierra restrepocortapalo@gmail.com@cortapalo, ",
              "[2] la comisión interamericana de derechos humanos (cidh) aplaudió este jueves la firma y aprobación del acuerdo de paz con las farc que fue ratificado esta semana tanto por la cámara como por el senado colombiano.\ren un comunicado expedido desde washington, el ente hemisférico expresa a su vez su beneplácito por los esfuerzos del gobierno por incluir en el nuevo acuerdo algunas propuestas de quienes se oponían al documento en general.\r\"la comisión interamericana reconoce los esfuerzos del estado para la renegociación del acuerdo de paz, en atención al pluralismo efectivo necesario en una sociedad democrática. la comisión ve con beneplácito que, tras tomar en cuenta las propuestas planteadas por los grupos que cuestionaron el acuerdo anterior y llamaron a votar en contra del mismo en el plebiscito del 2 de octubre pasado, colombia haya llegado a un nuevo acuerdo para la terminación del conflicto con las farc - ep\", dice la cidh. (le puede interesar: 'debemos presentar la ley de amnistía la próxima semana': mininterior)\ren el comunicado la comisión menciona la reunión que sostuvieron recientemente con el presidente juan manuel santos en la que se discutió \"la actual precariedad del cese al fuego y la futura implementación del acuerdo en colombia\".\rsegún este órgano, el presidente de la cidh, james cavallaro, le expresó a santos que el ente que encabeza continuaría monitoreando que la implementación del acuerdo se realice dentro del \"respeto y garantía a los estándares interamericanos\" de derechos humanos.\r\"la comisión mantiene su convicción respecto a que la consolidación de la paz es un requisito indispensable para el ejercicio y respeto de los derechos humanos. la cidh continúa comprometida con la búsqueda de la paz en colombia y dispuesta a colaborar en este esfuerzo, y en ese marco dará seguimiento a la implementación del nuevo acuerdo, en el marco de sus funciones\", dijo caravallo.\ren el comunicado, no obstante, la cidh resalta que el texto del nuevo acuerdo que les entregó santos en la reunión cambió antes de ser aprobado. (además: lo que viene tras la refrendación de la paz en el congreso)\raunque no menciona a cuál ajuste se refiere, la única modificación conocida al nuevo acuerdo que se llegó con las farc fue uno en el que se eliminó un artículo que hacía referencia a la responsabilidad de los militares por las acciones de sus subalternos.\ral respecto, el comisionado para colombia, josé de jesús orozco, destacó que \"continuarán dando seguimiento a la situación de los derechos humanos en colombia, a fin de que la implementación efectiva del acuerdo permita satisfacer los estándares internacionales de verdad, justicia y reparación en el contexto de transición hacia la paz\".\rpor su parte el embajador de colombia ante la oea, andrés gonzález, resaltó el apoyo de la comisión como \"de la mayor importancia porque el gobierno ha querido que el acuerdo de paz cumpla con todos los estándares internacionales. su declaración es esclarecedora: el camino más apropiado para prevenir las graves violaciones de derechos humanos es la terminación del conflicto armado. de acuerdo con gonzález el respaldo de la cidh representa \"una sólida columna de legitimidad jurídica internacional. todo el sistema interamericano se ha pronunciado por la paz de colombia como la paz de américa. primero, el consejo permanente de la oea por unanimidad. ahora la entidad rectora del continente en derechos humanos\".\rsergio gómez masericorresponsal de el tiempowashington")

#do this for the whole list
key_words_filter <- c("acuerdo de paz|acuerdos de paz|acuerdo con las farc")

df %>% 
  mutate(selection = str_extract(A, "^.{100}")) %>% 
  filter_all(any_vars(str_detect(., pattern = key_words_filter )))

A tibble: 1 x 2
  A                                                  selection                                         
  <chr>                                              <chr>                                             
1 "[2] la comisión interamericana de derechos human~ [2] la comisión interamericana de derechos humano~
> 

Вы также можете исследовать с помощью filter_at или filter_if, если вы не хотите фильтровать все столбцы, вы можете указать нужный столбец.

1 голос
/ 01 октября 2019

Приведенный ниже код является примером для создания новой переменной «Sentance_new», которая выбирает первые 9 слов в исходном предложении. Вы можете просто изменить 9 на 100. Затем вы будете фильтровать по ключевым словам, которые вы хотите.

 Df_1 <- data.frame(Sentance=c("Hello how are you doing today acuerdo de paz? 
         Can you give me a hand with this work."))

 Df_2<-Df_1 %>%
    mutate(Sentance_new=word(Sentance,1,9)) %>%
    filter(str_detect(Sentance_new, 'acuerdo de paz'))

РЕДАКТИРОВАННОЕ ДОПОЛНЕНИЕ: DF_1 - это ваш набор данных с текстом из многочисленных новостных сайтов. Просто продолжайте добавлять "str_detect (news_2," acuerdos de paz ") |" из ваших ключевых слов. "|"ИЛИ

DF_2<-DF_1 %>%
  mutate(news_2=word(news,1,100)) %>%
  filter(str_detect(news_2, "acuerdo de paz") |
     str_detect(news_2, "acuerdos de paz") | 
     str_detect(news_2, "acuerdo con las farc"))
0 голосов
/ 04 октября 2019

Этот ответ был получен на основе двух других ответов на этот пост

#Creating the key words filter 
    key_words_filter2 <- c("acuerdo de paz|acuerdos de paz|acuerdo con las farc|acuerdos con las farc|acuerdo entre el gobierno y las farc|acuerdo entre las farc y el gobierno|acuerdos de la habana|proceso de paz|diálogos con las farc|diálogos en la habana|diálogos de la habana|diálogos de paz|negociación con las farc|negociaciones con las farc|negociación en la habana|negociaciones en la habana|negociadores del gobierno y las farc|negociadores de las farc y el gobierno|plebiscito")

Чтобы фильтр ключевых слов работал, он должен быть в одной строке, как указано выше, и каждое ключевое слово должно быть отделенопо условию |"ИЛИ".

#Subsetting the dataframe within 100 words
subset_tiempo_100 <- subset_tiempo_kwords%>%
  mutate(content2=word(subset_tiempo_kwords$content, start= 1, end = 100)) %>%
  filter(str_detect(content2, key_words_filter2)) 
...