Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 23439|Répondre: 1

[Source] Assistant de segmentation de mots Pangu

[Copié le lien]
Publié sur 17/07/2017 10:02:38 | | |
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 ;
        }



    }

}


Score

Nombre de participants1MO+2 contribuer+2 Effondrement raison
Petite ordure + 2 + 2 Très puissant !

Voir toutes les notes





Précédent:outil d’accès à la base de données PHP Medoo
Prochain:Le Big Bang de Hammer Technology a-t-il plagié Zhong Yingpin ?
Publié sur 17/07/2017 10:55:05 |
Merci d’avoir partagé que la segmentation des mots est essentielle sur le système CMS
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com