Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 23439|Respuesta: 1

[Fuente] Asistente de segmentación de palabras Pangu

[Copiar enlace]
Publicado en 17/7/2017 10:02:38 | | |
usando Sistema;
usando System.Collections.Generic;
usando System.Linq;
usando System.Text;
usando System.Threading.Tasks;
usando PanGu.Dict;
usando PanGu.Framework;
usando PanGu.Match;
usando PanGu.Setting;
usando PanGu.HighLight;
usando Lucene.Net.Analysis;
usando System.IO;
usando PanGu;
usando System.Configuration;

espacio de nombres Pangu.Helper
{
    clase pública PanguHelper
    {

        PanguHelper estático volátil privado _instance = nulo;
        bloqueo de objeto solo de lectura estático privado Helper = nuevo objeto();
        privado PanguHelper() { }

        /// <summary>
        [Por defecto usa pangu.xml perfil bajo la misma ruta]
        /// </summary>
        /// <returns></returns>
        público estático PanguHelper ShareHelper
        {
            Obtener
            {
                if (_instance == null)
                {
                    Cerradura (LockHelper)
                    {
                        if (_instance == null)
                        {
                            _instance = nuevo PanguHelper();
                            string configFile = ConfigurationManager.AppSettings["PANGU_CONFIG"] + "";
                            if (configFile != "")
                            {
                                _instance. Use(configFile);
                            }
                        }
                    }
                }

                regresar _instance;
            }
        }

        /// <summary>
        Inicializar el archivo de configuración especificado
        /// </summary>
        <param name="configFile"> archivo de configuración pangu</param>
        empty público Use(string configFile)
        {
            PanGu.Segment.Init(archivoConfig);
        }

        /// <summary>
        Obtén una descripción de la parte del discurso
        /// </summary>
        <param name="pos"> enumeración de las partes del discurso</param>
        /// <returns></returns>
        cadena pública GetPosDescrip{filter}t(POS pos)
        {
            Interruptor (POS)
            {
                caso PUT. POS_UNK: devolver "parte del discurso desconocida;"
                caso PUT. POS_D_K: devolver "componente de seguimiento";
                caso PUT. POS_D_H: devolver "componente anterior";
                caso PUT. POS_A_NZ: devolver "otro nombre propio";
                caso PUT. POS_A_NX: devolver "carácter extranjero";
                caso PUT. POS_A_NR: devolver "nombre de la persona";
                caso PUT. POS_D_Z: devolver "palabra de estado";
                caso PUT. POS_A_NT: devolver el "cuerpo de instituciones";
                caso PUT. POS_A_NS: devolver "nombre del lugar";
                caso PUT. POS_D_Y: devolver "palabra de modo morfema";
                caso PUT. POS_D_X: devolver "palabra no morfémica";
                caso PUT. POS_D_W: devolver "puntuación";
                caso PUT. POS_D_T: devolver "palabra del tiempo";
                caso PUT. POS_D_S: devolver "colocar palabra";
                caso PUT. POS_D_V: devolver "morfema verbal";
                caso PUT. POS_D_U: devolver "morfema partícula";
                caso PUT. POS_D_R: devolver "pronombre pronombre morfema";
                caso PUT. POS_A_Q: devolver "cuantificador morfema";
                caso PUT. POS_D_P: devolver la "preposición";
                caso PUT. POS_D_MQ: devolver "cuantificador";
                caso PUT. POS_A_M: devolver "número, número, número";
                caso PUT. POS_D_O: devolver "onomatopeyas";
                caso PUT. POS_D_N: devolver "morfema";
                caso PUT. POS_D_F: devolver "palabra azimutal morfema de azimut";
                caso PUT. POS_D_E: devolver "morfema de interjección";
                caso PUT. POS_D_L: devolver "modismo";
                caso PUT. POS_D_I: devolver "modismo";
                caso PUT. POS_D_D: devolver "adverbio adverbio morfema";
                caso PUT. POS_D_C: devolver "morfema de conjunción conjuntiva";
                caso PUT. POS_D_B: devolver "distinguir palabras para distinguir morfemas";
                caso PUT. POS_D_A: devolver "morfema adjetivo";
            }
            devolver "Parte del discurso desconocida";
        }



        /// <summary>
        Consigue el participio [Palabra original]
        /// </summary>
        <param name="content"> el contenido de la palabra a separar</param>
        <param name="matchOptions"> usa las opciones correspondientes</param>
        <param name="matchParameter"> usar el parámetro de coincidencia</param>
        /// <returns></returns>
        public<WordInfo> ICollection GetSegmentWords(string content, MatchOptions matchOptions = null,
           MatchParameter, matchParameter = nulo)
        {
            Segmento segmento = nuevo segmento();
            <WordInfo> Palabras de ipolarción = segmento. DoSegment (contenido, matchOptions, matchParameter);
            responder palabras;
        }



        /// <summary>
        Obtener participios
        /// </summary>
        <param name="content"> el contenido de la palabra a separar</param>
        <param name="matchOptions"> Se usan opciones de coincidencia, no por defecto</param>
        <param name="matchParameter" > usar el parámetro correspondiente, no por defecto</param>
        Lista pública<string> GetSplitWords(contenido de cadena, MatchOptions matchOptions = null, MatchParameter matchParameter = null)
        {
            Segmento segmento = nuevo segmento();
            <WordInfo> Palabras de ipolarción = segmento. DoSegment(contenido, matchOptions, matchParameter);
            <string> Lista lista = nueva Lista<string>();
            foreach (WordInfo palabra en palabras)
            {
                lista. Añade (palabra. Palabra);
            }
            lista de retorno;
        }


        /// <summary>
        Obtener el participio de la frecuencia de palabra especificada
        /// </summary>
        <param name="content"> el contenido de la palabra a separar</param>
        <param name="frecuencia"> palabra frecuencia</param>
        <param name="matchOptions"> Se usan opciones de coincidencia, no por defecto</param>
        <param name="matchParameter" > usar el parámetro correspondiente, no por defecto</param>
        /// <returns></returns>
        Public<string> List GetSplitWordsByFrequency(string content, double frequenty, MatchOptions matchOptions = null,
            MatchParameter, matchParameter = nulo)
        {
            Segmento segmento = nuevo segmento();
            <WordInfo> Palabras de ipolarción = segmento. DoSegment (contenido, matchOptions, matchParameter);

            <string> Lista lista = nueva Lista<string>();
            foreach (WordInfo palabra en palabras)
            {
                if (frecuencia == palabra. Frecuencia)
                {
                    lista. Añade (palabra. Palabra);
                }
            }
            lista de retorno;
        }


        /// <summary>
        Consigue un participio con un peso especificado
        /// </summary>
        <param name="content"> el contenido de la palabra a separar</param>
        <param name="rank"> peso</param>
        <param name="matchOptions"> Se usan opciones de coincidencia, no por defecto</param>
        <param name="matchParameter" > usar el parámetro correspondiente, no por defecto</param>
        /// <returns></returns>
        Public List<string> GetSplitWordsByRank(string content, int rank, MatchOptions matchOptions = null,
            MatchParameter, matchParameter = nulo)
        {
            Segmento segmento = nuevo segmento();
            <WordInfo> Palabras de ipolarción = segmento. DoSegment (contenido, matchOptions, matchParameter);

            <string> Lista lista = nueva Lista<string>();
            foreach (WordInfo palabra en palabras)
            {
                si (rango == palabra. Rango)
                {
                    lista. Añade (palabra. Palabra);
                }
            }
            lista de retorno;
        }


        /// <summary>
        Aspectos destacados
        /// </summary>
        <param name="palabra clave"> la cadena para resaltar</param>
        <param name="content">content</param>
        <param name="fragmentSize"> el número de caracteres de cada campo resumen</param>
        <returns>Contenido destacado</returns>
        cadena estática pública HighLight(palabra clave de cadena, contenido de cadena, int fragmentSize)
        {
            Crea un código HTML con el parámetro que resalte el término de búsqueda  
            SimpleHTMLFormatter simpleHTMLFormatter = nuevo SimpleHTMLFormatter("<color de la fuente='red'>", "</font>");
            Crea resaltados, introduce código HTML y objeto Pangu Semgent  
            Destacado del resaltador = nuevo resaltador(simpleHTMLFormatter, nuevo Segmento());
            Establece el número de caracteres para cada campo de resumen  
            más alto. FragmentTamaño = FragmentTamaño;
            resaltado de la cuerda Str = más alto. GetBestFragment(palabra clave, contenido);

            si (cadena. IsNullOrEmpty(highlightStr))
            {
                devolver contenido;
            }
            volver a destacarStr;
        }



    }

}


Puntuación

Número de participantes1MB+2 contribuir+2 Colapso razón
Pequeña basura + 2 + 2 ¡Muy poderoso!

Ver todas las valoraciones





Anterior:Herramienta de acceso a bases de datos PHP Medoo
Próximo:¿Plagió Hammer Technology Big Bang a Zhong Yingpin?
Publicado en 17/7/2017 10:55:05 |
Gracias por compartir que la segmentación de palabras es esencial en el sistema CMS
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com