📄 poseventstream.cs
字号:
using System;
namespace OpenNLP.Tools.POSTagger
{
/// <summary> An implementation of EventStream whcih assumes the data stream gives a
/// sentence at a time with tokens as word_tag pairs.
/// </summary>
public class PosEventReader : SharpEntropy.ITrainingEventReader
{
private IPosContextGenerator ContextGenerator;
private SharpEntropy.ITrainingDataReader Data;
private SharpEntropy.TrainingEvent[] Events;
private int EventIndex;
public PosEventReader(SharpEntropy.ITrainingDataReader data):this(data, new DefaultPosContextGenerator())
{
}
public PosEventReader(SharpEntropy.ITrainingDataReader data, IPosContextGenerator contextGenerator)
{
ContextGenerator = contextGenerator;
Data = data;
EventIndex = 0;
if (Data.HasNext())
{
AddNewEvents((string) Data.NextToken());
}
else
{
Events = new SharpEntropy.TrainingEvent[0];
}
}
public virtual bool HasNext()
{
return (EventIndex < Events.Length || Data.HasNext());
}
public virtual SharpEntropy.TrainingEvent ReadNextEvent()
{
if (EventIndex == Events.Length)
{
AddNewEvents((string) Data.NextToken());
EventIndex = 0;
}
return ((SharpEntropy.TrainingEvent) Events[EventIndex++]);
}
private void AddNewEvents(string sentence)
{
//String sentence = "the_DT stories_NNS about_IN well-heeled_JJ communities_NNS and_CC developers_NNS";
SharpEntropy.IEventCollector oEventCollector = new PosEventCollector(new System.IO.StringReader(sentence), ContextGenerator);
Events = oEventCollector.GetEvents();
}
[STAThread]
public static void Main(string[] args)
{
EventStream oEventStream = new PosEventStream(new Maxent.PlainTextByLineDataStream(new System.IO.StreamReader(System.Console.In)));
while (oEventStream.HasNext())
{
System.Console.Out.WriteLine(oEventStream.GetNextEvent());
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -