我目前正在从事一个项目,我对德国全体辩论和报纸文章中一个主题(社会不平等)的普遍性感兴趣。我正在使用定量文本分析工具来从文本中生成输出,以包含在回归分析中的经济指标,例如基尼系数。到目前为止,我已经创建了一个字典来表示社会不平等,这使我能够生成每年汇总的计数和频率数据。但是,鉴于字典分析的问题,我也想使用有监督的方法,例如种子 lda 或结构主题模型。
在这种情况下,我遇到了两个困难。首先,我很难在 r 中实现任何这些监督方法,因为这些方法似乎旨在处理多个主题,而不是只关注一个主题。其次,我不知道我必须为回归分析选择哪个输出对象以及如何每年汇总它们。
到目前为止,我已经从“seededlda”包中尝试过 Seeded LDA,因为它似乎是最合适的。我有 2 个文本语料库:一个由 2296 个文件(全体辩论)组成,另一个由 190404 个文件(报纸文章)组成。但是,当我尝试创建 seeded-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*",
"lohngerechtigkeit*", "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,或者更确切地说,是否存在适合突出单个主题的监督方法,以及最终如何每年汇总其结果。
我将非常感谢任何帮助!