mit System; mit System.Collections.Generic; mit System.Linq; mit System.Text; unter Verwendung von System.Threading.Tasks; unter Verwendung von PanGu.Dict; mit PanGu.Framework; mit PanGu.Match; mit PanGu.Setting; unter Verwendung von PanGu.HighLight; mit Lucene.Net.Analysis; mit System.IO; mithilfe von PanGu; unter Verwendung von System.Configuration;
Namensraum Pangu.Helper
{ öffentliche Klasse PanguHelper {
private flüchtige statische PanguHelper _instance = null; privates statisches Readonly-ObjektLockHelper = neues Objekt(); private PanguHelper() { }
/// <summary> [Standard verwendet pangu.xml Profil unter demselben Pfad] /// </summary> /// <returns></returns> öffentliche statische PanguHelper ShareHelper { Erhalten { wenn (_instance == null) { Lock (lockHelper) { wenn (_instance == null) { _instance = neuer PanguHelper(); string configFile = ConfigurationManager.AppSettings["PANGU_CONFIG"] + ""; if (configFile != "") { _instance. Use(configFile); } } } }
_instance zurückkehren; } }
/// <summary> Initialisieren Sie die angegebene Konfigurationsdatei /// </summary> <param name="configFile"> pangu configuration file</param> public void Use(string configFile) { PanGu.Segment.Init(configFile); }
/// <summary> Hol dir eine Wortartbeschreibung /// </summary> <param name="pos"> Wortart-Aufzählung</param> /// <returns></returns> public string GetPosDescrip{filter}t(POS pos) { Switch (POS) { Fall-POS. POS_UNK: Rückgabe "unbekannte Wortart;" Fall-POS. POS_D_K: "nachfolgende Komponente" zurückgeben; Fall-POS. POS_D_H: "vorangehende Komponente" zurückgeben; Fall-POS. POS_A_NZ: "anderer Eigenname" zurückgeben; Fall-POS. POS_A_NX: "ausländischer Charakter" zurückgeben; Fall-POS. POS_A_NR: "Name der Person" zurückgeben; Fall-POS. POS_D_Z: "Statuswort" zurückgeben; Fall-POS. POS_A_NT: Rückgabe des "Körpers der Institutionen"; Fall-POS. POS_A_NS: "Ortsname" zurückgeben; Fall-POS. POS_D_Y: Return "Mood Word Mood Morphem"; Fall-POS. POS_D_X: geben "nicht-morphämisches Wort" zurück; Fall-POS. POS_D_W: "Zeichensetzung" zurückgeben; Fall-POS. POS_D_T: "Wort der Zeit" zurückgeben; Fall-POS. POS_D_S: "Ortswort" zurückgeben; Fall-POS. POS_D_V: "Verbmorphem" zurückgeben; Fall-POS. POS_D_U: Return "Particle Particle Morphem"; Fall-POS. POS_D_R: Return "Pronomenpronomenmorphem"; Fall-POS. POS_A_Q: "Quantor-Quantor-Morphem" zurückgeben; Fall-POS. POS_D_P: "Präposition" zurückgeben; Fall-POS. POS_D_MQ: "Quantor" zurückgeben; Fall-POS. POS_A_M: geben Sie "numeral, numeral, numeral" zurück; Fall-POS. POS_D_O: "Onomatopoeie" zurückzugeben; Fall-POS. POS_D_N: Return "Nomenmorphem"; Fall-POS. POS_D_F: zurück "Azimutwort-Azimutmorphem"; Fall-POS. POS_D_E: "Interjektionsmorphem" zurückgeben; Fall-POS. POS_D_L: "Idiom" zurückgeben; Fall-POS. POS_D_I: "Idiom" zurückgeben; Fall-POS. POS_D_D: "Adverb Adverb Morphem" zurückgeben; Fall-POS. POS_D_C: "konjunktive Konjunktionsmorphem" zurückgeben; Fall-POS. POS_D_B: zurückgeben "um Wörter zu unterscheiden, um Morpheme zu unterscheiden"; Fall-POS. POS_D_A: geben "Adjektivmorphem" zurück; } Return "unbekannte Wortart"; }
/// <summary> Erhalte das Partizip [Original Wordinfo] /// </summary> <param name="content"> der Inhalt des zu trennenden Wortes</param> <param name="matchOptions"> verwende die Matching-Optionen</param> <param name="matchParameter"> verwende den Match-Parameter</param> /// <returns></returns> öffentliche ICollection<WordInfo> GetSegmentWords (String-Inhalt, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmentsegment = neues Segment(); ICollektionswörter<WordInfo> = Segment. DoSegment(content, matchOptions, matchParameter); Erwidern Sie Worte; }
/// <summary> Partizipien erhalten /// </summary> <param name="content"> der Inhalt des zu trennenden Wortes</param> <param name="matchOptions"> Match-Optionen werden verwendet, nicht standardmäßig</param> <param name="matchParameter" > den passenden Parameter verwenden, nicht standardmäßig</param> öffentliche<string> Liste GetSplitWords (String-Inhalt, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmentsegment = neues Segment(); ICollektionswörter<WordInfo> = Segment. DoSegment (Inhalt, MatchOptions, MatchParameter); Liste<string> = neue Liste<string>(); foreach (WordInfo-Wort in Wörtern) { Liste. Add(word. Word); } Rückkehrliste; }
/// <summary> Erhalten Sie das Partizip der angegebenen Worthäufigkeit /// </summary> <param name="content"> der Inhalt des zu trennenden Wortes</param> <Param Name="Frequenz"> Wortfrequenz</param> <param name="matchOptions"> Match-Optionen werden verwendet, nicht standardmäßig</param> <param name="matchParameter" > den passenden Parameter verwenden, nicht standardmäßig</param> /// <returns></returns> öffentliche Liste<string> GetSplitWordsByFrequency(String-Inhalt, doppelte Frequenz, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmentsegment = neues Segment(); ICollektionswörter<WordInfo> = Segment. DoSegment(content, matchOptions, matchParameter);
Liste<string> = neue Liste<string>(); foreach (WordInfo-Wort in Wörtern) { wenn (Frequenz == Wort. Frequenz) { Liste. Add(word. Word); } } Rückkehrliste; }
/// <summary> Nehmen Sie ein Partizip mit einem bestimmten Gewicht /// </summary> <param name="content"> der Inhalt des zu trennenden Wortes</param> <param name="Rang"> Gewicht</param> <param name="matchOptions"> Match-Optionen werden verwendet, nicht standardmäßig</param> <param name="matchParameter" > den passenden Parameter verwenden, nicht standardmäßig</param> /// <returns></returns> öffentliche Liste<string> GetSplitWordsByRank(String-Inhalt, int-Rang, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmentsegment = neues Segment(); ICollektionswörter<WordInfo> = Segment. DoSegment(content, matchOptions, matchParameter);
Liste<string> = neue Liste<string>(); foreach (WordInfo-Wort in Wörtern) { wenn (Rang == Wort. Rang) { Liste. Add(word. Word); } } Rückkehrliste; }
/// <summary> Höhepunkt /// </summary> <param name="keyword"> die Zeichenkette hervorheben</param> <param name="content">content</param> <param name="fragmentSize"> die Anzahl der Zeichen für jedes Zusammenfassungsfeld</param> <returns>Hervorgehobene Inhalte</returns> öffentlicher statischer String HighLight (String-Schlüsselwort, String-Inhalt, int fragmentSize) { Erstellen Sie einen HTML-Code mit dem Parameter, der den Suchbegriff hervorhebt. SimpleHTMLFormatter simpleHTMLFormatter = neuer SimpleHTMLFormatter("<font color='red'>", "</font>"); Hervorhebung erstellen, HTML-Code eingeben und das Pangu-Objekt Semgent Highlighter höher = neuer Highlighter(simpleHTMLFormatter, neuer Segment()); Setzen Sie die Anzahl der Zeichen für jedes Zusammenfassungsfeld höher. FragmentSize = FragmentSize; Saiten-HighlightStr = höher. GetBestFragment (Schlüsselwort, Inhalt);
wenn (String. IsNullOrEmpty(highlightStr)) { Inhalte zurückzugeben; } Rückkehr-HighlightStr; }
}
}
|