Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 23439|Resposta: 1

[Fonte] Assistente de segmentação de palavras Pangu

[Copiar link]
Publicado em 17/07/2017 10:02:38 | | |
usando o 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;

espaço de nomes Pangu.Helper
{
    classe pública PanguHelper
    {

        PanguHelper estático volátil privado _instance = nulo;
        bloqueio privado estático de objeto somente leituraHelper = novo objeto();
        privado PanguHelper() { }

        /// <summary>
        [Padrão usa pangu.xml perfil no mesmo caminho]
        /// </summary>
        /// <returns></returns>
        estático público PanguHelper ShareHelper
        {
            Obter
            {
                if (_instance == null)
                {
                    Fechadura (Ajudante de Fechadura)
                    {
                        if (_instance == null)
                        {
                            _instance = novo PanguHelper();
                            string configFile = ConfigurationManager.AppSettings["PANGU_CONFIG"] + "";
                            if (configFile != "")
                            {
                                _instance. Use(configFile);
                            }
                        }
                    }
                }

                retorno _instance;
            }
        }

        /// <summary>
        Inicialize o arquivo de configuração especificado
        /// </summary>
        <param name="configFile"> arquivo de configuração pangu</param>
        public void Use(string configFile)
        {
            PanGu.Segment.Init(arquivo de configuração);
        }

        /// <summary>
        Obtenha uma descrição da classe gramatical
        /// </summary>
        <param name="pos"> enumeração de classes gramaticais</param>
        /// <returns></returns>
        string publica GetPosDescrip{filter}t(POS pos)
        {
            Interruptor (POS)
            {
                caso POS. POS_UNK: devolver "parte do discurso desconhecida;"
                caso POS. POS_D_K: retorno "componente de saída";
                caso POS. POS_D_H: retorne "componente anterior";
                caso POS. POS_A_NZ: devolver "outro nome próprio";
                caso POS. POS_A_NX: devolver "caráter estrangeiro";
                caso POS. POS_A_NR: devolver "nome da pessoa";
                caso POS. POS_D_Z: devolver "palavra de status";
                caso POS. POS_A_NT: devolver o "corpo de instituições";
                caso POS. POS_A_NS: devolver "nome do lugar";
                caso POS. POS_D_Y: devolver "palavra de humor morfema";
                caso POS. POS_D_X: retorne "palavra não morfêmica";
                caso POS. POS_D_W: devolver "pontuação";
                caso POS. POS_D_T: devolver "palavra do tempo";
                caso POS. POS_D_S: devolver "colocar palavra";
                caso POS. POS_D_V: devolver "morfema verbal";
                caso POS. POS_D_U: devolver "morfema de partícula";
                caso POS. POS_D_R: devolver "pronome pronome morfema";
                caso POS. POS_A_Q: retorne "quantificador de morfema";
                caso POS. POS_D_P: retorno "preposição";
                caso POS. POS_D_MQ: retorne "quantificador";
                caso POS. POS_A_M: devolver "numeral, numeral, numeral";
                caso POS. POS_D_O: devolver "onomatopeias";
                caso POS. POS_D_N: devolver "substantivo morfema";
                caso POS. POS_D_F: devolver "palavra azimute morfema azimute";
                caso POS. POS_D_E: devolver "morfema de interjeição";
                caso POS. POS_D_L: devolver "idioma";
                caso POS. POS_D_I: devolver "idioma";
                caso POS. POS_D_D: devolver "advérbio advérbio morfema";
                caso POS. POS_D_C: devolver "morfema de conjunção conjuntiva";
                caso POS. POS_D_B: retorne "distinguir palavras para distinguir morfemas";
                caso POS. POS_D_A: devolver "morfema adjetivo";
            }
            devolver "Classe Expressiva Desconhecida";
        }



        /// <summary>
        Obtenha o particípio [Original Wordinfo]
        /// </summary>
        <param name="content"> o conteúdo da palavra a ser separado</param>
        <param name="matchOptions"> use as opções correspondentes</param>
        <param name="matchParameter"> use o parâmetro de correspondência</param>
        /// <returns></returns>
        public<WordInfo> ICollection GetSegmentWords(string content, MatchOptions matchOptions = null,
           MatchParameter, matchParameter = null)
        {
            Segmento segmento = novo Segmento();
            Palavras de colição<WordInfo> = segmento. DoSegment(conteúdo, matchOptions, matchParameter);
            responder palavras;
        }



        /// <summary>
        Obtenha particípios
        /// </summary>
        <param name="content"> o conteúdo da palavra a ser separado</param>
        <param name="matchOptions"> Opções de correspondência são usadas, não por padrão</param>
        <param name="matchParameter" > usar o parâmetro correspondente, não por padrão</param>
        Lista pública<string> GetSplitWords (conteúdo de string, MatchOptions matchOptions = null, MatchParameter matchParameter = null)
        {
            Segmento segmento = novo Segmento();
            Palavras de colição<WordInfo> = segmento. DoSegment(conteúdo, matchOptions, matchParameter);
            <string> Lista lista = nova Lista<string>();
            foreach (WordInfo palavra em palavras)
            {
                lista. Adicione(palavra). Palavra);
            }
            lista de retorno;
        }


        /// <summary>
        Obtenha o particípio da frequência de palavra especificada
        /// </summary>
        <param name="content"> o conteúdo da palavra a ser separado</param>
        <param name="frequência"> frequência de palavra</param>
        <param name="matchOptions"> Opções de correspondência são usadas, não por padrão</param>
        <param name="matchParameter" > usar o parâmetro correspondente, não por padrão</param>
        /// <returns></returns>
        Lista pública<string> GetSplitWordsByFrequency(string content, double frequent, MatchOptions matchOptions = null,
            MatchParameter, matchParameter = null)
        {
            Segmento segmento = novo Segmento();
            Palavras de colição<WordInfo> = segmento. DoSegment(conteúdo, matchOptions, matchParameter);

            <string> Lista lista = nova Lista<string>();
            foreach (WordInfo palavra em palavras)
            {
                if (frequência == palavra. Frequência)
                {
                    lista. Adicione(palavra). Palavra);
                }
            }
            lista de retorno;
        }


        /// <summary>
        Obtenha um particípio com um peso especificado
        /// </summary>
        <param name="content"> o conteúdo da palavra a ser separado</param>
        <param name="rank"> peso</param>
        <param name="matchOptions"> Opções de correspondência são usadas, não por padrão</param>
        <param name="matchParameter" > usar o parâmetro correspondente, não por padrão</param>
        /// <returns></returns>
        Lista pública<string> GetSplitWordsByRank(string content, int rank, MatchOptions matchOptions = null,
            MatchParameter, matchParameter = null)
        {
            Segmento segmento = novo Segmento();
            Palavras de colição<WordInfo> = segmento. DoSegment(conteúdo, matchOptions, matchParameter);

            <string> Lista lista = nova Lista<string>();
            foreach (WordInfo palavra em palavras)
            {
                if (rank == palavra. Classificação)
                {
                    lista. Adicione(palavra). Palavra);
                }
            }
            lista de retorno;
        }


        /// <summary>
        Destaque
        /// </summary>
        <param name="palavra-chave"> a string para destacar</param>
        <param name="content">content</param>
        <param name="fragmentSize"> o número de caracteres para cada campo de resumo</param>
        <returns>Conteúdo destacado</returns>
        String estática pública HighLight(palavra-chave de string, conteúdo de string, int fragmentSize)
        {
            Crie um código HTML com o parâmetro destacando o termo de busca  
            SimpleHTMLFormatter simpleHTMLFormatter = novo SimpleHTMLFormatter("<font color='red'>", "</font>");
            Crie destaques, insira código HTML e o objeto Pangu Semgent  
            Highter do marcador = novo Highlighter(simpleHTMLFormatter, novo Segmento());
            Defina o número de caracteres para cada campo de resumo  
            mais alto. TamanhoDeFragmento = TamanhoDeFragmento;
            destaque da corda Str = mais alto. GetBestFragment (palavra-chave, conteúdo);

            se (string. IsNullOrEmpty(highlightStr))
            {
                devolver conteúdo;
            }
            voltar destaqueStr;
        }



    }

}


Pontuação

Número de participantes1MB+2 contribuir+2 Colapso razão
Pequeno + 2 + 2 Muito poderoso!

Veja todas as classificações





Anterior:Ferramenta de acesso a banco de dados PHP Medoo
Próximo:Será que o Big Bang da Hammer Technology plagiou Zhong Yingpin?
Publicado em 17/07/2017 10:55:05 |
Obrigado por compartilhar que a segmentação de palavras é essencial no sistema CMS
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com