utilisant System ; utilisant System.Collections.Generic ; utilisant System.Linq ; en utilisant System.Text ; utilisant System.Threading.Tasks ; utilisant PanGu.Dict ; utilisant PanGu.Framework ; utilisant PanGu.Match ; utilisant PanGu.Setting ; utilisant PanGu.HighLight ; utilisant Lucene.Net.Analysis ; utiliser System.IO ; utilisant PanGu ; utilisant System.Configuration ;
Espace de noms Pangu.Helper
{ classe publique PanguHelper {
PanguHelper statique volatile privé _instance = nul ; verrouillage d’objet en lecture seule statique privé Aideur = nouvel objet() ; privé PanguHelper() { }
/// <summary> [Par défaut utilise pangu.xml profil sous le même chemin] /// </summary> /// <returns></returns> public statique PanguHelper Partage-Aide { Avoir { if (_instance == null) { Serrure (Assistant de serrure) { if (_instance == null) { _instance = nouveau PanguHelper() ; chaîne configFile = ConfigurationManager.AppSettings["PANGU_CONFIG"] + « » ; if (configFile != « ») { _instance. Use(configFile) ; } } } }
retour _instance ; } }
/// <summary> Initialiser le fichier de configuration spécifié /// </summary> <param name="configFile"> fichier de configuration pangu</param> public void Use(string configFile) { PanGu.Segment.Init(fichier config) ; }
/// <summary> Obtenez une description des parties du discours /// </summary> <param name="pos"> énumération des parties du discours</param> /// <returns></returns> chaîne publique GetPosDescrip{filter}t(POS pos) { Commutateur (POS) { Cas de. POS_UNK : retourner « partie du discours inconnue » ; Cas de. POS_D_K : retourner « composante arrière » ; Cas de. POS_D_H : retourner « composante précédante » ; Cas de. POS_A_NZ : retourner « autre nom propre » ; Cas de. POS_A_NX : retour à « caractère étranger » ; Cas de. POS_A_NR : retourner « nom de la personne » ; Cas de. POS_D_Z : retourner « mot de statut » ; Cas de. POS_A_NT : restituer « corps of institutions » ; Cas de. POS_A_NS : retourner « nom de lieu » ; Cas de. POS_D_Y : retourner « mot d’humeur morphème » ; Cas de. POS_D_X : retourner « mot non morphémique » ; Cas de. POS_D_W : retourner « ponctuation » ; Cas de. POS_D_T : retourner « mot du temps » ; Cas de. POS_D_S : retourner « placer le mot » ; Cas de. POS_D_V : retourner « morphème verbal » ; Cas de. POS_D_U : retourner « morphème particule de particules » ; Cas de. POS_D_R : retourner « pronom pronom morphème » ; Cas de. POS_A_Q : retourner « quantificateur morphème » ; Cas de. POS_D_P : retourner la « préposition » ; Cas de. POS_D_MQ : retourner « quantificateur » ; Cas de. POS_A_M : retourner « chiffre, chiffre, chiffre » ; Cas de. POS_D_O : retourner « onomatopées » ; Cas de. POS_D_N : retourner « nom morphème » ; Cas de. POS_D_F : retourner « mot azimut morphème » ; Cas de. POS_D_E : retourner « morphème d’interjection » ; Cas de. POS_D_L : retourner « idiom » ; Cas de. POS_D_I : retour « idiom » ; Cas de. POS_D_D : retourner « adverbe adverbe morphème » ; Cas de. POS_D_C : retourner « morphème conjonctionnelle » ; Cas de. POS_D_B : retourner « distinguer les mots pour distinguer les morphèmes » ; Cas de. POS_D_A : retourner « morphème adjectif » ; } retourner « partie du discours inconnue » ; }
/// <summary> Obtenez le participe [Original Wordinfo] /// </summary> <param name="content"> le contenu du mot à séparer</param> <param name="matchOptions"> utilisez les options correspondantes</param> <param name="matchParameter"> utilisez le paramètre de correspondance</param> /// <returns></returns> public<WordInfo> ICollection GetSegmentWords(string content, MatchOptions matchOptions = null, MatchParameter, matchParameter = null) { Segment segment = nouveau segment() ; Mots d’ICollection<WordInfo> = segment. DoSegment (contenu, matchOptions, matchParameter) ; répondre aux mots ; }
/// <summary> Obtenir des participes /// </summary> <param name="content"> le contenu du mot à séparer</param> <param name="matchOptions"> Les options de correspondance sont utilisées, pas par défaut</param> <param name="matchParameter » > utiliser le paramètre correspondant, pas par défaut</param> Public<string> List GetSplitWords(contenu de chaînes, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segment segment = nouveau segment() ; Mots d’ICollection<WordInfo> = segment. DoSegment(content, matchOptions, matchParameter) ; <string> Liste liste = nouvelle <string>Liste() ; foreach (WordInfo mot en mots) { liste. Ajoute (word. Word) ; } liste de retour ; }
/// <summary> Obtenir le participe de la fréquence du mot spécifiée /// </summary> <param name="content"> le contenu du mot à séparer</param> <param name="frequency"> fréquence des mots</param> <param name="matchOptions"> Les options de correspondance sont utilisées, pas par défaut</param> <param name="matchParameter » > utiliser le paramètre correspondant, pas par défaut</param> /// <returns></returns> public<string> List GetSplitWordsByFrequency(string content, double frequency, MatchOptions matchOptions = null, MatchParameter, matchParameter = null) { Segment segment = nouveau segment() ; Mots d’ICollection<WordInfo> = segment. DoSegment (contenu, matchOptions, matchParameter) ;
<string> Liste liste = nouvelle <string>Liste() ; foreach (WordInfo mot en mots) { if (fréquence == mot. Fréquence) { liste. Ajoute (word. Word) ; } } liste de retour ; }
/// <summary> Obtenez un participe avec un poids spécifié /// </summary> <param name="content"> le contenu du mot à séparer</param> <param name="rank"> poids</param> <param name="matchOptions"> Les options de correspondance sont utilisées, pas par défaut</param> <param name="matchParameter » > utiliser le paramètre correspondant, pas par défaut</param> /// <returns></returns> Public List<string> GetSplitWordsByRank(string content, int rank, MatchOptions matchOptions = null, MatchParameter, matchParameter = null) { Segment segment = nouveau segment() ; Mots d’ICollection<WordInfo> = segment. DoSegment (contenu, matchOptions, matchParameter) ;
<string> Liste liste = nouvelle <string>Liste() ; foreach (WordInfo mot en mots) { if (rang == mot. Grade) { liste. Ajoute (word. Word) ; } } liste de retour ; }
/// <summary> Points forts /// </summary> <param name="mot-clé"> la chaîne à surligner</param> <param name="content">content</param> <param name="fragmentSize"> le nombre de caractères pour chaque champ de résumé</param> <returns>Contenu mis en avant</returns> chaîne statique publique HighLight (mot-clé de chaîne, contenu chaîne, int fragmentSize) { Créez un code HTML avec le paramètre mettant en évidence le terme de recherche SimpleHTMLFormatter simpleHTMLFormatter = new SimpleHTMLFormatter(« <font color='red'> », « </font> ») ; Créer des surlignements, entrer le code HTML et l’objet Pangu Semgent Surligneur surligneur = nouveau surligneur(simpleHTMLFormatter, nouveau segment()) ; Définissez le nombre de caractères pour chaque champ résumé plus haut. FragmentTaille = FragmentTaille ; surligne de la corde Str = plus haut. GetBestFragment (mot-clé, contenu) ;
if (chaîne. IsNullOrEmpty(highlightStr)) { retourner le contenu ; } retour de la mise en avant Str ; }
}
}
|