Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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 == нуль)
                {
                    Замок (замокПомічник)
                    {
                        якщо (_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)
        {
            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: повернути «розрізняти слова для розрізнення морфем»;
                справа ПОГАНА. POS_D_A: повернути «морфема прикметника»;
            }
            повернути «невідому частину мови»;
        }



        /// <summary>
        Отримайте дієприкметник [Оригінальна інформація в Word]
        /// </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"> Опції Match використовуються, а не за замовчуванням</param>
        <name="matchParameter" > використовувати параметр відповідності, а не за замовчуванням</param>
        публічний список<string> GetSplitWords (string content, MatchOptions matchOptions = null, MatchParameter matchParameter = null)
        {
            Сегментний сегмент = новий Сегмент();
            ICollection<WordInfo> слова = сегмент. 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"> Опції Match використовуються, а не за замовчуванням</param>
        <name="matchParameter" > використовувати параметр відповідності, а не за замовчуванням</param>
        /// <returns></returns>
        публічний список<string> GetSplitWordsByFrequency (string content, double frequency, MatchOptions matchOptions = null,
            MatchParameter matchParameter = null)
        {
            Сегментний сегмент = новий Сегмент();
            ICollection<WordInfo> слова = сегмент. 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"> Опції Match використовуються, а не за замовчуванням</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 = новий 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 = новий SimpleHTMLFormatter ("<font color='red'>", "</font>");
            Створіть виділення, введіть HTML-код і об'єкт Pangu Semgent  
            Highlighter highter = новий Highlighter(simpleHTMLFormatter, новий Segment());
            Встановіть кількість символів для кожного підсумкового поля  
            вище. FragmentSize = fragmentSize;
            підсвічування струн Str = висока. GetBestFragment(ключове слово, контент);

            якщо (рядок. IsNullOrEmpty(highlightStr))
            {
                повернення контенту;
            }
            повернення highlightStr;
        }



    }

}


Забити

Кількість учасників1МБ+2 Сприяють+2 Колапс причина
Маленька покидька + 2 + 2 Дуже потужно!

Переглянути всі рейтинги





Попередній:Інструмент доступу до бази даних php Medoo
Наступний:Чи Hammer Technology Big Bang плагіатили Чжун Їнпіна?
Опубліковано 17.07.2017 10:55:05 |
Дякую, що поділилися тим, що сегментація слів є необхідною в системі CMS
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com