使用出现在前 100 个单词中的关键字对 R 中的数据帧进行子集化

Subsetting a dataframe in R using key words that appear in the first 100 words

我有一个包含新闻文章信息(标题、日期、内容等)的数据框。我想通过使用关键字过滤新闻文章的内容来对该数据框进行子集化。但是,我想在内容的前 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 ")

我该怎么做?感谢您的帮助!

下面的代码是创建一个新变量 "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"))

弄明白了,使用第一个过滤器创建一个子集,并使用或运算符“|”创建一个正则表达式模式每个关键词之间:

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 进行探索,您可以指定所需的列。

此答案是根据对此 post

的其他两个回复生成的
#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")

为了使关键字过滤器起作用,它必须像上面那样在一行字符串中,并且每个关键字由条件分隔 | "OR".

#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))