Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 23439|Отговор: 1

[Източник] Асистент за сегментация на думи в Пангу

[Копирай линк]
Публикувано в 17.07.2017 г. 10:02:38 ч. | | |
използвайки System;
използвайки System.Collections.Generic;
използвайки System.Linq;
използвайки System.Text;
използвайки System.Threading.Tasks;
използване на PanGu.Dict;
използвайки PanGu.Framework;
използвайки PanGu.Match;
използване на PanGu.Setting;
използване на PanGu.HighLight;
с използване на Lucene.Net.Analysis;
използвайки System.IO;
използвайки PanGu;
използвайки System.Configuration;

Namespace Pangu.Helper
{
    публичен клас PanguHelper
    {

        private volatile static PanguHelper _instance = null;
        частен статичен обект за четене lockHelper = нов обект();
        private PanguHelper() { }

        /// <summary>
        [По подразбиране използва профила pangu.xml по същия път]
        /// </summary>
        /// <returns></returns>
        публичен статичен PanguHelper ShareHelper
        {
            Вземи
            {
                ако (_instance == нулева)
                {
                    Заключване (помощник за заключване)
                    {
                        ако (_instance == нулева)
                        {
                            _instance = нов PanguHelper();
                            string configFile = ConfigurationManager.AppSettings["PANGU_CONFIG"] + "";
                            if (configFile != "")
                            {
                                _instance. Use(configFile);
                            }
                        }
                    }
                }

                връщане _instance;
            }
        }

        /// <summary>
        Инициализирайте посочения конфигурационен файл
        /// </summary>
        <param name="configFile"> pangu configuration file</param>
        public void Use(string configFile)
        {
            PanGu.Segment.Init(configFile);
        }

        /// <summary>
        Вземете описание на частта на речта
        /// </summary>
        <param name="pos"> изброяване на части на речта</param>
        /// <returns></returns>
        public string GetPosDescrip{filter}t(POS pos)
        {
            Суич (POS)
            {
                случай POS. POS_UNK: върни "неизвестна част от речта;"
                случай POS. POS_D_K: връщане на "следящ компонент";
                случай POS. POS_D_H: върни "предходен компонент";
                случай POS. POS_A_NZ: връщане на "друго собствено име";
                случай POS. POS_A_NX: връщане на "чужд символ";
                случай POS. POS_A_NR: върни "името на лицето";
                случай POS. POS_D_Z: връщане на "статусна дума";
                случай POS. POS_A_NT: връщане на "корпус от институции";
                случай POS. POS_A_NS: връщане на "име на място";
                случай POS. POS_D_Y: връщане "морфема на настроение дума";
                случай POS. POS_D_X: return "неморфемна дума";
                случай POS. POS_D_W: връщане на "пунктуация";
                случай POS. POS_D_T: връщане на "word of time";
                случай POS. POS_D_S: връщане на "дума за място";
                случай POS. POS_D_V: връща "глагол морфема";
                случай POS. POS_D_U: връща "морфема на частицата частица";
                случай POS. POS_D_R: връща "местоимение морфема";
                случай POS. POS_A_Q: връщане на "кванторен кванторен морфем";
                случай POS. POS_D_P: връщане на "предлог";
                случай POS. POS_D_MQ: връщане на "квантор";
                случай POS. POS_A_M: връщане на "число, число, число";
                случай POS. POS_D_O: връщане на "ономатопея";
                случай POS. POS_D_N: връща "съществително морфем";
                случай POS. POS_D_F: връщане на "азимутната дума азимутна морфема";
                случай POS. POS_D_E: връщане на "морфема на интердомекция";
                случай POS. POS_D_L: връщане на "идиом";
                случай POS. POS_D_I: връщане на "идиом";
                случай POS. POS_D_D: return "наречие морфема";
                случай POS. POS_D_C: връща "конюнктивна конюнктивна морфема";
                случай POS. POS_D_B: return "за разграничаване на думи за разграничаване на морфеми";
                случай POS. POS_D_A: връща "морфема на прилагателно";
            }
            връщане на "неизвестна част на речта";
        }



        /// <summary>
        Вземете причастие [Оригинална информация]
        /// </summary>
        <param name="content"> съдържанието на думата, която трябва да се отдели</param>
        <param name="matchOptions"> използвайте опциите за съвпадение</param>
        <име на парама="matchParameter"> използвайте параметъра match</param>
        /// <returns></returns>
        public ICollection<WordInfo> GetSegmentWords(string content, MatchOptions matchOptions = null,
           MatchParameter matchParameter = null)
        {
            Сегментен сегмент = нов Сегмент();
            ICollection<WordInfo> думи = сегмент. DoSegment(content, matchOptions, matchParameter);
            отговорни думи;
        }



        /// <summary>
        Вземи причастия
        /// </summary>
        <param name="content"> съдържанието на думата, която трябва да се отдели</param>
        <param name="matchOptions"> Опциите за съвпадение се използват, не по подразбиране</param>
        <param name="matchParameter" > използва параметъра за съвпадение, а не по подразбиране</param>
        публичен<string> списък GetSplitWords (string content, MatchOptions matchOptions = null, MatchParameter matchParameter = null)
        {
            Сегментен сегмент = нов Сегмент();
            ICollection<WordInfo> думи = сегмент. DoSegment(content,matchOptions,matchParameter);
            <string> List list = new List<string>();
            foreach (WordInfo дума в думи)
            {
                списък. Add(word. Word);
            }
            списък за връщане;
        }


        /// <summary>
        Получаване на причастие на зададената честота на думата
        /// </summary>
        <param name="content"> съдържанието на думата, която трябва да се отдели</param>
        <param name="честота"> честота на думата</param>
        <param name="matchOptions"> Опциите за съвпадение се използват, не по подразбиране</param>
        <param name="matchParameter" > използва параметъра за съвпадение, а не по подразбиране</param>
        /// <returns></returns>
        публичен<string> списък GetSplitWordsByFrequency(съдържание на низове, двойна честота, MatchOptions matchOptions = null,
            MatchParameter matchParameter = null)
        {
            Сегментен сегмент = нов Сегмент();
            ICollection<WordInfo> думи = сегмент. DoSegment(content, matchOptions, matchParameter);

            <string> List list = new List<string>();
            foreach (WordInfo дума в думи)
            {
                ако (честота == дума. Честота)
                {
                    списък. Add(word. Word);
                }
            }
            списък за връщане;
        }


        /// <summary>
        Вземете причастие с определено тегло
        /// </summary>
        <param name="content"> съдържанието на думата, която трябва да се отдели</param>
        <param name="ранг"> тегло</param>
        <param name="matchOptions"> Опциите за съвпадение се използват, не по подразбиране</param>
        <param name="matchParameter" > използва параметъра за съвпадение, а не по подразбиране</param>
        /// <returns></returns>
        публичен<string> списък GetSplitWordsByRank(string content, int rank, MatchOptions matchOptions = null,
            MatchParameter matchParameter = null)
        {
            Сегментен сегмент = нов Сегмент();
            ICollection<WordInfo> думи = сегмент. DoSegment(content, matchOptions, matchParameter);

            <string> List list = new List<string>();
            foreach (WordInfo дума в думи)
            {
                ако (ранг == дума. Ранг)
                {
                    списък. Add(word. Word);
                }
            }
            списък за връщане;
        }


        /// <summary>
        Акценти
        /// </summary>
        <param name="keyword"> низа за маркиране</param>
        <param name="content">content</param>
        <param name="fragmentSize"> броят на символите за всяко обобщено поле</param>
        <returns>Изтъкнато съдържание</returns>
        публичен статичен низ HighLight(низова ключова дума, string content, int fragmentSize)
        {
            Създайте HTML код с параметър, който подчертава търсения термин  
            SimpleHTMLFormatter simpleHTMLFormatter = new SimpleHTMLFormatter ("<font color='red'>", "</font>");
            Създайте маркиране, въведете HTML код и Pangu обект Semgent  
            Highlighter highter = new Highlighter(simpleHTMLFormatter, new Segment());
            Задайте броя на символите за всяко обобщено поле  
            по-високо. FragmentSize = fragmentSize;
            низова маркировкаStr = по-висока. GetBestFragment(ключова дума, съдържание);

            ако (струна. IsNullOrEmpty(highlightStr))
            {
                връщане на съдържание;
            }
            return highlightStr;
        }



    }

}


Резултат

Брой участници1MB+2 допринасям+2 Срив причина
Малък боклук + 2 + 2 Много мощно!

Вижте всички оценки





Предишен:php инструмент за достъп до база данни Medoo
Следващ:Плагиатства ли Hammer Technology Big Bang Zhong Yingpin?
Публикувано в 17.07.2017 г. 10:55:05 ч. |
Благодаря, че споделихте, че сегментирането на думите е от съществено значение в CMS системата
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com