你好,
在某些代码中,我想在不加载文件(即不使用 sent_tokenize
和虚拟文本及语言)的情况下检查 Punkt 模型是否可用。但这种方法根本没有被记录。
我深入研究了 nltk.data.load
和整个模块,以找到一个解决方案。这与我在停用词上所做的工作完全不同,那里的解决方案相对简单且可搜索(ntlk.corpus.stopwords.fileids()
)。我最终找到的解决方案是 nltk.data.find(f'tokenizers/punkt/{language}.pickle')
,它非常脆弱且难以找到。
是否有更容易的方法来确定给定语言的 Punkt 模型是否可用?
1条答案
按热度按时间uqzxnwby1#
当然可以!NLTK并没有提供一个专门用于检查特定语言的Punkt模型可用性的直接函数。但是,您可以使用
nltk.data
中的函数创建一个自定义函数,以检查给定语言的Punkt分词器模型文件是否存在。
例如:
这个函数,
is_punkt_model_available
,检查指定语言的Punkt分词器模型文件是否存在。如果找到该模型文件,它将返回True
,否则返回False
。由于这种方法依赖于NLTK内部数据存储的结构,因此可能会被认为是有些脆弱,正如您提到的那样。