输出“文件——令牌entity"使用斯坦福NER
本文关键字:quot 斯坦福 NER 文件 令牌 entity 输出 | 更新日期: 2023-09-27 18:04:36
我想在c#中使用斯坦福NER读取文件夹中的所有文件,并以"文件令牌实体"格式将结果输出到一个文件中
我有:
namespace stanfordNER
{
class Program
{
public static CRFClassifier Classifier = CRFClassifier.getClassifierNoExceptions(@"english.all.3class.distsim.crf.ser.gz");
static void Main(string[] args)
{
Console.WriteLine("directory address?");
string dir = Console.ReadLine();
//Reads all files in directory
string[] files = System.IO.Directory.GetFiles(dir);
foreach (string f in files)
{
//Get the document name
string docNo = Path.GetFileName(Path.GetFullPath(f).TrimEnd(Path.DirectorySeparatorChar));
Console.WriteLine(docNo);
string docText = System.IO.File.ReadAllText(f);
var classified = Classifier.classifyFile(f).toArray();
//Error here when running
//Should output the entities,**this part is the work of Stewart Whiting (STEWH)
for (int i = 0; i < classified.Length; i++)
{
Triple triple = (Triple)classified[i];
int second = Convert.ToInt32(triple.second().ToString());
int third = Convert.ToInt32(triple.third().ToString());
Console.WriteLine(docNo + ''t' + triple.first().ToString() + ''t' + docText.Substring(second, third - second));
}
}
}
}
}
我在"triple"处得到一个无效的强制转换异常错误。我不知道如何使用三重函数。
我想要的输出示例:
wiki-ms ORGANIZATION Microsoft Corporation
wiki-ms LOCATION Redmond
wiki-ms LOCATION Washington
wiki-ms ORGANIZATION Microsoft
wiki-ms ORGANIZATION Microsoft Office
wiki-ms ORGANIZATION Microsoft
wiki-ms PERSON Bill Gates
wiki-ms PERSON Paul Allen
wiki-ms ORGANIZATION Microsoft
wiki-ms ORGANIZATION Microsoft
提前感谢!我是一名制造工程师,所以我的编程知识很差。
如果你有一种方法来过滤重复和/或类似的实体,这将是一个额外的奖励!
感谢Stewart Whiting。他的网站
我明白了,只需要改变
var classified = Classifier.classifyFile(f).toArray();
var classified = Classifier.classifyToCharacterOffsets(docText).toArray();
谢谢。