spaCy处理多语言文档

3

给定一个长度为s的文档字符串和一个相同长度的语言掩码l,我希望能够使用相应的spacy语言模型处理文档的每个部分(span?)。

例如:

s = 'As one would say in German: Wie man auf englisch zu sagen pflegt'
l = ['en'] * 27 + ['de'] * 37

我想构建一个文档。
import spacy
nlp_de = spacy.load('de')
nlp_en = spacy.load('en')

d_de = nlp_de(u"".join([c for i,c in enumerate(s) if l[i] == "de"]))
d_en = nlp_en(u"".join([c for i,c in enumerate(s) if l[i] == "en"]))

现在,我需要将这两部分粘合起来。但不幸的是,spacy文档中包含有关词汇表的信息。这将导致歧义。

我该如何使用spacy对我的多语言文档进行建模?


我相信Spacy有一个多语言模型,可以在一个模型中处理英语和德语。请检查模型列表。 - Superdooperhero
但根据Spacy文档,多语言当前支持以下功能:“维基百科语料库。分配命名实体。支持荷兰语、英语、法语、德语、意大利语、波兰语、葡萄牙语、俄语和西班牙语的PER、LOC、ORG和MISC实体的识别。” - Nicole Douglas
1个回答

2

关于这个问题,我有两点想法:

  1. 语码转换:即将一个以上的语言(主要是口语,但不限于此)组合在一起。这与你的例子并不完全相同。
  2. 像你的句子一样,可以分开处理。

如果你的大部分文本都像你的例子一样,我建议尝试通过语言分离来处理文本(对于你的例子,我会得到两个句子并分别处理它们)。

如果是另一种情况,我不确定spacy是否内置支持语码转换,如果没有,则需要构建自己的模型(或尝试结合spacy的模型),具体取决于你的实际任务。


谢谢你的回答。我会再次研究语言的空间分布。我知道我的数据大约有三分之二的德语和三分之一的法语,只有很少的其他语言出现,但我不知道它是在句子之间还是整个段落中使用这两种语言更多。目前,我不会将其标记为已接受的答案,因为我的问题更多是关于如何使用spaCy数据结构解决此问题。 - Milla Well

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接