在 R 包 quanteda 中使用 half-space

Using half-space in R package quanteda

我正在使用 R 中 quanteda 包中的 KWIC 函数来查找一些库尔德语短语。在库尔德语中,一些复合词和短语以半-space分隔。当我使用包含 half-space 的短语时,R 认为它是错字(红点)并且不让我 运行 命令。有办法解决这个问题吗?

half-space 或零宽度非连接符在某些语言中用于在规范化文本时避免连字。它的 Unicode 字符是 '\u200c' 并且在一些文本编辑器中,它可以通过 SHIFT+SPACE.

显示在屏幕上
kwic(cleantest, phrase("له‌لایه‌نی"), window = 1)

Here is the image of the error

此外,您知道 Sorani Kurdish POS Tagger 和 Stemmer 吗?

有趣的问题。我们最近一直在思考这个here and here

显然问题出在短语转换为列表时,这依赖于空格拆分。这是确保将半空格转换为完整空格的解决方法:

txt <- "رۆژنامه‌كانى به‌ریتانیا، ئاماژه‌ بۆ ئه‌وه‌ ده‌كه‌ن كه‌ سه‌ره‌ڕای ئه‌وه‌ی ڤینگه‌ر ده‌زانێت له‌ وه‌رزی داهاتوودا گه‌وره‌ترین كێشه‌ی له‌لایه‌نی گۆڵپارێزی ده‌بێت، به‌ڵام له‌گه‌ڵ ئه‌وه‌شدا ئاماده‌ نییه‌ به‌هیچ .شێوه‌یه‌ك پیته‌ر چیك له‌سه‌ر كورسی یه‌ده‌گ دابنێت "

phrase2 <- function(x) phrase(gsub("\s", " ", x))

kwic(txt, phrase2("له‌لایه‌نی"), window = 1)

# [text1, 33:35] ی | له لایه نی | گۆڵپارێزی

不,我不知道 Sorani Kurdish POS Tagger 和 Stemmer,尽管 stopwords package 确实包含库尔德停用词。

stopwords("ku", source = "stopwords-iso")
#  [1] "ئێمە"     "ئێوە"     "ئەم"      "ئەو"      "ئەوان"    "ئەوەی"   
#  [7] "بۆ"       "بێ"       "بێجگە"    "بە"       "بەبێ"     "بەدەم"   
# [13] "بەردەم"   "بەرلە"    "بەرەوی"   "بەرەوە"   "بەلای"    "بەپێی"   
# [19] "تۆ"       "تێ"       "جگە"      "دوای"     "دوو"      "دە"      
# [25] "دەکات"    "دەگەڵ"    "سەر"      "لێ"       "لە"       "لەبابەت" 
# [31] "لەباتی"   "لەبارەی"  "لەبرێتی"  "لەبن"     "لەبەر"    "لەبەینی" 
# [37] "لەدەم"    "لەرێ"     "لەرێگا"   "لەرەوی"   "لەسەر"    "لەلایەن" 
# [43] "لەناو"    "لەنێو"    "لەو"      "لەپێناوی" "لەژێر"    "لەگەڵ"   
# [49] "من"       "ناو"      "نێوان"    "هەر"      "هەروەها"  "و"       
# [55] "وەک"      "پاش"      "پێ"       "پێش"      "چەند"     "کرد"     
# [61] "کە"       "ی"