如何将半监督方法结构主题模型、种子 lda应用于只有一个主题的语料库,并在 r 中每年汇总其结果?

问题描述

我目前正在开展一个项目,我对德国全体会议辩论和报纸文章一个主题(社会不平等)的普遍性感兴趣。我正在使用定量文本分析工具来从文本中生成输出,以包含在具有经济指标(例如基尼系数)的回归分析中。到目前为止,我已经创建了一个字典来表示社会不平等,这使我能够生成每年汇总的计数和频率数据。但是,针对字典分析的问题,我也想使用seeded lda或结构主题模型等监督方法

在这种情况下,我遇到了两个困难。首先,我很难在 r 中实现这些监督方法中的任何一种,因为这些方法似乎旨在处理多个主题,而不是只关注一个主题。其次,我不知道我必须选择哪个输出对象进行回归分析,以及如何每年汇总它们。

到目前为止,我已经尝试过“seeddlda”包中的 Seeded LDA,因为它似乎是最合适的。我有 2 个文本语料库:一个由 2296 个文件(全体辩论)组成,另一个由 190404 个文件(报纸文章)组成。但是,当我尝试创建 Seed-lda 模型时,r 没有得到任何结果并冻结在两个语料库的顶部。

我创建了以下字典:

require(quanteda)
dict <- dictionary(list(Alles = c("soziale_sich*","soziale_teilhabe*","soziale_verunsich*","soziale_zwänge","soziale_ängste","sozialer_absturz","sozialer_sprengstoff","sozialer_zwang","soziales_schicksal","sozialrisik*","sozialschmarotzer","steigende_haushaltseinkommen","superreiche","unterprivilegierte_gruppe*","verarmung*","vermögenskonzentration*","wirtschaftliche_und_soziale_auswirkung*","wohlfahrtsdiktatur","ärmere_hälfte_der_bevölkerung","ärmsten_haushalte","ökonomische_sachzwänge*","abzug_von_vorsorgeaufwendungen","agenda_2010","allgemeinverbindliche_tarifverträge","arbeitnehmersparzulage","arbeitsbedingung*","arbeitsmarktinklusion*","arbeitsmarktpolitische maßnahme*","bafög*","besteuerung_von_erbschaften","besteuerung_von_kapitalerträgen","bildungs-_und_teilhabepaket","bildungsbenachteiligung*","bildungsfern*","bildungspaket*","bildungsungleichheit*","daseinsvorsorge","einkommen_entlasten","empowerment","entlastung_niedriger_und_mittlerer_einkommen","entlastung_von_einkommen","erbschaftsbesteuerung","erbschaftssteuer","erhöhung_des_Mindestlohns","freibetrag","hartz_IV*","lohnentwicklung*","mehr_soziale_rechte","mehr_umverteilung*","mindestlohn","mindestlöhne","mini_job*","neue_soziale_frage","reichensteuer","sozialabgaben","sozialbudget","soziale_integration*","soziale_sanktion*","sozialgesetzgebung*","sozialhilfeempfänger*","sozialintegration","sozialleistungsquote*","sozialpolitische_maßnahme*","sozialpolitische_reformmaßnahme*","sozialstaat*","sozialtarife","sozialversicherung*","staatliche_förderung_der_vermögensbildung","steuerlicher_ausgleich","steuervergünstigung*","stärkung_der_tarifbindung*","teilhabeleistung","teilhabepaket","transferleistung*","vermögensbesteuerung*","verteilungspolitik","weniger_umverteilung*","wohlfahrt*","wohlfahrtsstaat*","wohlstandsverlust*","wohngeld*","wohnungsbauprämie*","Verteilungs-_und_Stratifikationsaspekte","aufstiegsmobilität","einkommensgrenz*","einkommensschere","einkommensschwach*","einkommensungleich*","einkommensungleichheit*","einkommensunterschied*","einkommensverteilung*","gesellschaftliche_mobilität*","gesellschaftlicher_abstieg*","gesellschaftlicher_aufstieg*","gini*","gleichheit_der_lebensverhältnisse","konkurrent_um_soziale_güter","konsumungleichheit*","lohngerechtigkeit*","pay_gap","schonvermögen*","steuergerechtigkeit*","steuerungerechtigkeit*","ungleiche einkommensverteilung","ungleiche_verteilung_der_vermögen*","ungleichheit_der_markteinkommen","ungleichheit_der_vermögen*","ungleichheit_von_vermögen","ungleichverteilung*","vermögensungleichheit*","verteilung_der_einkommen*","verteilung_von_einkommen","verteilungsverhältnis*","wirtschaftliche_kluft","wirtschaftlicher_aufstieg*","ökonomischer_aufstieg*","arbeit_muss_sich_lohnen","egalitäre_gesellschaft*","einkommensgerecht*","entsolidarisierung","faire_löhne","generationengerechtigkeit","gerechte_löhne","gerechter_lohn*","gesellschaftlich_gleich*","gesellschaftliche_chance*","gesellschaftliche_emanzipation","gesellschaftliche_gleich*","gesellschaftliche_kohäsion","gesellschaftliche_schieflage*","gesellschaftliche_solidarität","gesellschaftliche_verantwort*","gesellschaftlicher_zusammenhalt","gleiche_gesellschaft*","politische_gleichheit*","schlechte_soziale_verhältnisse","solidarische_ökonomie","sozial_gerecht*","sozial_ungerecht*","soziale_aufstieg*","soziale_chancen*","soziale_chancengerechtigkeit","soziale_chancengleichheit","soziale_emanzipation","soziale_gerechtigkeit*","soziale_kohäsion*","soziale_schieflage*","soziale_solidarität","soziale_ungerechtigkeit*","soziales_wohl*","sozialgerecht*","verteilungsgerecht*","wirtschaftlich_gerecht*","wirtschaftliche_chancengleichheit","wirtschaftliche_emanzipation","wirtschaftliche_solidarität","ökonomisch_gerecht*","ökonomische_emanzipation","abstiegsangst","abstiegsängste","allgemeine_wirtschaftliche_entwicklung*","arbeitslos*","arm","arme","armut*","einkommenslücke*","einkommensreiche","einkommensreichtum","existenzsich*","geringverdiener*","gesellschaftliche_absich*","gesellschaftliche_ausgrenz*","gesellschaftliche_folge*","gesellschaftliche_gräben","gesellschaftliche_kluft","gesellschaftliche_lage*","gesellschaftliche_perspektiv*","gesellschaftliche_sich*","gesellschaftliche_spalt*","gesellschaftliche_teilhabe*","gesellschaftliche_ungleich*","gesellschaftliche_verunsich*","gesellschaftliche_zwänge","gesellschaftlicher_ungleich*","gesellschaftlicher_zwang","großverdiener*","hohe_vermögen*","hoher_wohlstand","hohes_wohlstandsniveau","marktfundamentalismus","markTradikalismus","mehr_einkommen*","mehrverdiener*","mitellos*","niedriglohn*","niedriglöhne*","obdachlos*","plutokrat*","politisch_ungleich","politische_ungleich*","prekariat","prekär*","putzfrau","reichste_prozent","reichtumsgrenze","schere_zwischen*","sinkende_haushaltseinkommen","sozial_abgehängt*","sozial_bedürf*","sozial_bedürftig*","sozial_bessergestellt*","sozial_dring*","sozial_exklusiv*","sozial_explosiv*","sozial_gleich*","sozial_isoliert*","sozial_schlecht*","sozial_schwach*","sozial_selektiv*","sozial_ungleich*","sozial_unterprivilegiert*","sozial-wirtschaftliche_lage","soziale_absich*","soziale_angst","soziale_ausgrenz*","soziale_bedürf*","soziale_differenz*","soziale_disparität*","soziale_dring*","soziale_entwicklung*","soziale_exklusion","soziale_fehlentwicklung*","soziale_folge*","soziale_frage*","soziale_gleich*","soziale_grenzlinie*","soziale_gräbe*","soziale_herausforderung*","soziale_herkunft","soziale_hinder*","soziale_hürde*","soziale_isolation*","soziale_kluft","soziale_konkurrenz","soziale_lage*","soziale_mobilität*","soziale_perspektiv*","soziale_rahmen*","soziale_reproduktion*","soziale_risiken","soziale_schicksale","soziale_selektiv*","soziale_sich*","soziale_spalt*","soziale_ungleich*","soziale_ungleichgewichte","soziale_verzerrung*","sozialer_abstieg*","sozialer_aufstieg*","sozialer_bedürf*","sozialer_diff*","sozialer_disparität*","sozialer_entwick*","sozialer_folg*","sozialer_rahm*","sozialer_ungleich*","soziales_ungleich*","soziales_ungleichgewicht","sozialordnung","sozialverträglich*","sozio-ökonomische_entwicklung*","sozioökonomische_folge*","sozioökonomische_frage*","ungleichheitsdebatte*","ungleichheitsentwicklung*","unterschicht*","vermögensungleich*","verteilungsdiskussion*","von_der_gesellschaft_abgehängt*","weniger_einkommen*","wirtschaftlich_abgehängt*","wirtschaftlich_bedürf*","wirtschaftliche_ausgrenz*","wirtschaftliche_disparität*","wirtschaftliche_schwierigkeit*","zwischen_arm_und_reich","ökonomisch_ungleich*","ökonomische_absich*","ökonomische_sich*","ökonomische_ungleich*")))

我将其应用于以以下方式制作的我的一个语料库的 dfm。

spiegel_dfm <- spiegel_corpus %>% 
 tokens(remove_punct = TRUE) %>% 
 tokens_compound(pattern = phrase(multiwords)) %>%
 dfm()

然后我尝试按以下方式计算模型。

require(seededlda)
tmod_slda <- textmodel_seededlda(spiegel_dfm,dictionary = dict,max_iter = 2000,weight = 0.01)

这是我的会话信息,如果需要的话。

R version 4.0.3 (2020-10-10)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS High Sierra 10.13.6

Matrix products: default
BLAS:   /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib

locale:
[1] de_DE.UTF-8/de_DE.UTF-8/de_DE.UTF-8/C/de_DE.UTF-8/de_DE.UTF-8

attached base packages:
[1] stats     graphics  Grdevices utils     datasets  methods   base     

other attached packages:
[1] seededlda_0.5.1 quanteda_2.1.2 

loaded via a namespace (and not attached):
[1] Rcpp_1.0.5         rstudioapi_0.13    magrittr_2.0.1     usethis_2.0.0      stopwords_2.1     
[6] tidyselect_1.1.0   munsell_0.5.0      colorspace_2.0-0   lattice_0.20-41    R6_2.5.0          
[11] rlang_0.4.9        fastmatch_1.1-0    dplyr_1.0.2        tools_4.0.3        grid_4.0.3        
[16] data.table_1.13.4  gtable_0.3.0       xfun_0.19          tinytex_0.28       ellipsis_0.3.1    
[21] yaml_2.2.1         RcppParallel_5.0.2 tibble_3.0.4       lifecycle_0.2.0    Crayon_1.3.4      
[26] Matrix_1.2-18      purrr_0.3.4        ggplot2_3.3.2      fs_1.5.0           vctrs_0.3.6       
[31] glue_1.4.2         stringi_1.5.3      compiler_4.0.3     pillar_1.4.7       generics_0.1.0    
[36] scales_1.1.1       pkgconfig_2.0.3   

因此,我不确定我是否正确应用了种子化的 lda,或者更确切地说,是否有适合突出显示单个主题的监督方法,以及最终如何每年汇总其结果。

如有任何帮助,我将不胜感激!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...