gpt4 book ai didi

c# - 将实体添加到 Stanford NLP NER 分类器

转载 作者:行者123 更新时间:2023-11-30 18:14:13 26 4
gpt4 key购买 nike

我有一个非常简单的方法来从字符串中提取名称、组织和位置。我正在为 Stanford NLP 使用 .NET Nuget 库。看起来像这样。

CRFClassifier Classifier = CRFClassifier.getClassifier(StanfordNLPConfig.NER.ClassifierModel);

List<IndexViewModel> ivms = new List<IndexViewModel>();

try
{
foreach (List sentence in Classifier.classify(content).toArray())
{
NLPTranslator translator = new NLPTranslator();
ivms.AddRange(translator.NERTranslate(sentence));
}
}
catch (Exception ex)
{
throw ex;
// Error silently
}

return ivms;

模型是它附带的 3class jar 文件 - english.all.3class.distsim.crf.ser.gz。

这对我来说非常有效,但我想做的是与模型交互,以便在我需要时能够添加我自己的实体,这看起来非常以美国为中心,我想成为能够放置我自己的英国公司、地点等。

有没有什么方法可以添加这些实体,因为我一直在阅读有关训练它的内容,但是您可能无法扩展模型,如果是这种情况,我可以结合分类器并通过英国分类器运行它/美国等。如果可能的话,我怎样才能真正制作自己的分类器,因为如果可能的话,我想在 .NET 中制作这些分类器。

最佳答案

如果您想更改模型的工作方式,您需要提供训练数据并训练您自己的模型。出于许可原因,斯坦福大学不分发公共(public)模型训练所用的数据,但您可以使用相同的功能。

您可以阅读有关如何训练模型的信息 here ,尽管不幸的是,说明的第一句话是这样的:

The documentation for training your own classifier is somewhere between bad and non-existent.

如果这是您第一次使用 CRF,则需要学习很多东西,但它是易于管理的。查看其他包的文档可能会有所帮助,例如 CRFSuiteCRF++ - 它们通常都使用基本相同的训练数据格式,并且在很多方面都很相似。

另请注意,现有模型无法通过仅在新输入上进行训练来扩展,系统并非以这种方式设置。

关于c# - 将实体添加到 Stanford NLP NER 分类器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50746990/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com