我需要对语料库中的文件进行 POS 标记。
我已成功按照SharpNlp的安装说明进行操作
我使用的是二进制版本
I created a new c# project in: E:\sharp\sharpapp
location of Models Folder is: E:\sharp\sharpapp\bin\Models
location of my SharpNlp Binary is: E:\sharp\SharpNLP-1.0.2529-Bin
我还按照说明修改了 .config 文件“ParseTree.Exe”和“ToolsExamples.Exe”
现在在我的 c# 项目中,我有一个名为 tagging.cs 的类,我必须在其中访问我的语料库文本文件并对这些文件进行词性标注。任何人都可以帮助我如何利用 SharpNlp 来做到这一点
请提供这样做的步骤。
最佳答案
简而言之, SharpNLP 是
需要注意的是,OpenNLP 库的移植相对非正式,具有各种类和属性名称更改,可能对特性和语义的保留松散,并且与原始 Java 项目的生命周期没有明显的联系。这种情况可能会确保 SharpNLP 的 OpenNLP 部分将更类似于远房表亲而不是双胞胎姐妹......
尽管如此, 可以使用 OpenNLP 的示例和文档来补充 SharpNLP 提供的相对较薄的支持 Material 。在 SharpNLP 的源代码和 OpenNLP API reference 和 OpenNLP wiki 等资源之间,人们通常可以映射事物并相应地进行调整。
一个松散的导体可能是对这个特殊的 source file 的研究,它以一种看起来接近你可能需要的方式使用 OpenNLP。请注意 OpenNLP 和 SharpNLP 之间的名称更改,例如 POSTTaggerME 类变为 MaximumEntropyPosTagger,而 Parse() 方法及其重载变为 TagSentence() 等。
一个更一般的提示是理解......
... 执行 POS 标记通常所需的步骤序列 。
这是一个非常高级的近似描述,但我认为很有用。
请注意上述序列如何假设模型随时可用。
该模型是一般文本的统计“配置文件”的表示,通过使用一组易于标记的文本训练标记器获得。
SharpNLP 带有通用英语语言模型,但为了标记其他语言,或者如果要标记的特定语料库属于特定领域(例如医疗报告或推文或...),最好重新训练标记器以提高其精度。
Open/SharpNLP 作为大多数 POS 标记器,无论是独立的还是它们的 API,通常都包括训练它们的功能(= 生成一个模型给定一组易于标记的文本),并验证模型/标记器的质量。 (= 将在测试集上生成的标签与该集预期的标签进行比较)。