Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 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;

Пространство имён Pangu.Helper
{
    общественный класс PanguHelper
    {

        private volatile static PanguHelper _instance = null;
        приватный статический объект только для чтения lockHelper = новый объект();
        private PanguHelper() { }

        /// <summary>
        [По умолчанию pangu.xml профиль по тому же пути]
        /// </summary>
        /// <returns></returns>
        public static PanguHelper ShareHelper
        {
            Получить
            {
                если (_instance == null)
                {
                    Замок (LockHelper)
                    {
                        если (_instance == null)
                        {
                            _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)
        {
            Switch (POS)
            {
                Дело ПЛОХОЕ. POS_UNK: вернуть «неизвестную часть речи»;
                Дело ПЛОХОЕ. POS_D_K: возврат «заднего компонента»;
                Дело ПЛОХОЕ. POS_D_H: вернуть «предшествующую компоненту»;
                Дело ПЛОХОЕ. POS_A_NZ: вернуть «другое собственное имя»;
                Дело ПЛОХОЕ. POS_A_NX: возврат «иностранного персонажа»;
                Дело ПЛОХОЕ. POS_A_NR: вернуть «имя человека»;
                Дело ПЛОХОЕ. POS_D_Z: вернуть «статусное слово»;
                Дело ПЛОХОЕ. POS_A_NT: возвращение «корпуса институтов»;
                Дело ПЛОХОЕ. POS_A_NS: вернуть «название места»;
                Дело ПЛОХОЕ. POS_D_Y: вернуть «морфема настроения слова настроения»;
                Дело ПЛОХОЕ. POS_D_X: вернуть «неморфемное слово»;
                Дело ПЛОХОЕ. POS_D_W: возврат «пунктуации»;
                Дело ПЛОХОЕ. POS_D_T: вернуть «слово времени»;
                Дело ПЛОХОЕ. POS_D_S: возврат «место слов»;
                Дело ПЛОХОЕ. POS_D_V: вернуть «глагольный морфем»;
                Дело ПЛОХОЕ. POS_D_U: вернуть «морфему частицы частицы»;
                Дело ПЛОХОЕ. POS_D_R: вернуть «местоимение местоимения морфема»;
                Дело ПЛОХОЕ. POS_A_Q: вернуть «кванторный кванторный морфем»;
                Дело ПЛОХОЕ. POS_D_P: вернуть «предлог»;
                Дело ПЛОХОЕ. POS_D_MQ: возврат «квантор»;
                Дело ПЛОХОЕ. POS_A_M: вернуть «число, число, число»;
                Дело ПЛОХОЕ. POS_D_O: возвращение «ономатопея»;
                Дело ПЛОХОЕ. POS_D_N: вернуть «морфему существительного»;
                Дело ПЛОХОЕ. POS_D_F: вернуть «азимутальное слово азимут морфема»;
                Дело ПЛОХОЕ. POS_D_E: вернуть «морфему междомения»;
                Дело ПЛОХОЕ. POS_D_L: вернуть «идиому»;
                Дело ПЛОХОЕ. POS_D_I: возврат «идиома»;
                Дело ПЛОХОЕ. POS_D_D: вернуть «наречие наречие морфема»;
                Дело ПЛОХОЕ. POS_D_C: вернуть «морфему конъюнктивного соединения»;
                Дело ПЛОХОЕ. POS_D_B: return «для различия слов для различения морфем»;
                Дело ПЛОХОЕ. POS_D_A: вернуть «прилагательный морфема»;
            }
            возврат «неизвестная часть речи»;
        }



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



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


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

            <string> List list = новый List<string>();
            foreach (WordInfo слово в словах)
            {
                если (частота == слово. Частота)
                {
                    Список. Add(word. Слово);
                }
            }
            список возвратов;
        }


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

            <string> List list = новый List<string>();
            foreach (WordInfo слово в словах)
            {
                если (ранг == слово. Звание)
                {
                    Список. Add(word. Слово);
                }
            }
            список возвратов;
        }


        /// <summary>
        Основные моменты
        /// </summary>
        <param name="keyword"> строка для выделения</param>
        <param name="content">content</param>
        <param name="fragmentSize"> количество символов для каждого поля сводки</param>
        <returns>Выделенный материал</returns>
        публичная статическая строка HighLight (ключевое слово строки, содержание строки, 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;
        }



    }

}


Счёт

Количество участников1МБ+2 способствовать+2 Коллапс причина
Маленькая мразь + 2 + 2 Очень мощно!

Смотреть все рейтинги





Предыдущий:инструмент доступа к базе данных php Medoo
Следующий:Молот Технолоджи Большой взрыв плагиат Чжун Инпина?
Опубликовано 17.07.2017 10:55:05 |
Спасибо, что поделились, что сегментация слов важна в системе CMS
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com