如何在我的C#应用​​程序中使用USE SharpNlp

ame*_*kar 4 c# nlp

我需要在语料库中为我的文件进行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
Run Code Online (Sandbox Code Playgroud)

我也按照说明修改.config文件"ParseTree.Exe"和"ToolsExamples.Exe"

现在在我的c#项目中,我有一个名为tagging.cs的类,我必须访问我的语料库文本文件并对这些文件进行POS标记.任何人都可以帮助我如何使用SharpNlp这样做

请提供相应的步骤.

mjv*_*mjv 10

简而言之,SharpNLP

  • OpenNLP ToolsOpenNLP MaxEnt的 C#端口
  • WordNet的连接器
  • 一组预先计算的模型,主要用于英语
  • 实用程序模块,例如与SQLLite集成

应该注意的是,OpenNLP库的端口是相对非正式的,具有各种类和属性名称更改,可能是对特性和语义的松散保留,并且与原始Java项目的生命周期没有明显的联系.这种情况可能会确保SharpNLP的OpenNLP部分将比孪生姐妹更类似于远亲堂兄弟......

尽管如此,可以使用OpenNLP的示例和文档来补充SharpNLP提供的相对较薄的支持材料.在SharpNLP的源代码和OpenNLP API参考OpenNLP wiki之类的资源之间,人们通常可以映射事物并相应地进行调整.

松散的指挥可能是对这个特定源文件的研究,它以一种看似接近你可能需要的方式使用OpenNLP.注意OpenNLP和SharpNLP之间的名称更改,例如POSTTaggerME类变为MaximumEntropyPosTagger,Parse()方法及其重载变为TagSentence()等.

一个更普遍的提示是要了解...
... 通常必要的步骤来执行词性标注的顺序.
这是一个非常高级的近似描述,但我认为是有用的.

  • 获取要标记的文本=文本的字符串
  • 初始化文本解析器
  • 解析它=一个带有单个标记的"数组"(或其他容器),即单词和标点字符.
  • 初始化POS Tagger,特别是告诉它应该使用哪个型号
  • 将[有序]令牌序列提供给POS Tagger
  • 塔达!将POS标签用于NLP应用程序的最终目的.

请注意上述序列假定模型随时可用.
该模型是一般文本的统计"概况"的表示,通过使用一组易于标记的文本训练Tagger获得.
SharpNLP附带通用英语语言模型,但为了标记其他语言或者标记的特定语料库属于特定领域(例如医学报告或推文或......),最好重新训练标记器以提高其精度.
Open/SharpNLP作为大多数POS标签器,无论是独立的还是它们的API,通常都包含训练它们的功能(=生成一个模型,给出一组容易标记的文本样本),并验证所生成的模型/标记器的质量(=比较测试集上生成的标签与此集合预期的标签).