如何使用Spacy生成具有特定后缀的N个名词

  • 本文关键字:后缀 Spacy 何使用 spacy
  • 更新时间 :
  • 英文 :


我想使用Spacy生成一个相对随机的20个名词列表,这些名词都有相同的词尾。在我的例子中,语言是德语,一个例子的结尾可能是"-keit"。

我相信Spacy在nlp.vocab中为包中的每种语言都有一个很大的单词列表,但如果我对它进行迭代,我不知道每次运行的顺序是随机的还是相同的。

我知道Spacy也有一个Corpus对象,我想知道它是否支持更适合搜索特定语言形式的特定示例的方法

如果NLP.Vocab不是给定语言的综合单词列表,那么在Spacy领域中是否有一个常用的数据集可以加载,其中包含完整的词汇表?

Spacy中的每个语言模型都有默认词汇表:

nlp = spacy.load(“en_core_web_sm”) # of type Language - https://spacy.io/api/language/
vocab = nlp.vocab # of type Vocab - https://spacy.io/api/vocab

您可以通过将任何单词作为字符串对Vocab对象进行索引来获得该单词的Lexeme对象:

word = nlp.vocab[“apple”]

您可以对Vocab对象进行迭代,以收集N个以特定后缀结尾的名词单词。

如果你想从随机中挑选单词,你可以使用随机选择。

SpacyCorpus对象用于加载要用于训练新管道的数据,因此它不具有上述功能。

较大的模型具有更多的向量,因此它们可能具有更大的词汇表。对于英语来说,这将是en_core_web_lg

管道中的Vocab对象用于处理带有Lexemes信息的某些数据结构,而不是有用的单词列表。Vocab中的单词并不是语言中所有单词的列表,而是模型看到的每个单词——因此,它包括用于内部使用的字符串(如"NOUN"(或训练语料库中的拼写错误,但并不罕见的单词恰好不在语料库中。您可以在开发文档中阅读更多关于Vocab的内容。

spaCy没有语言生成功能(它特别超出了范围(,所以你最好在其他地方找到一个单词列表,并将其用作源代码。

作为一个例外,对于某些语言,spaCy有按词性排列的大量单词列表作为引理器的数据,这些单词列表保存在spaCy查找数据中。这在很大程度上取决于语言,但这些往往是为了全面。德语有一个单词列表,但没有按词性组织。

相关内容

  • 没有找到相关文章

最新更新