Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 23439|Odpowiedź: 1

[Źródło] Asystent segmentacji słów Pangu

[Skopiuj link]
Opublikowano 17.07.2017 10:02:38 | | |
z wykorzystaniem System;
używając System.Collections.Generic;
używając System.Linq;
używając System.Text;
używając System.Threading.Tasks;
używając PanGu.Dict;
używając PanGu.Framework;
używając PanGu.Match;
używając PanGu.Setting;
używając PanGu.HighLight;
używając Lucene.Net.Analysis;
używając System.IO;
używając PanGu;
używając System.Configuration;

przestrzeń nazw Pangu.Helper
{
    Publiczna klasa PanguHelper
    {

        prywatny statyczny ulotny PanguHelper _instance = null;
        prywatny statyczny obiekt tylko do odczytu lockHelper = nowy obiekt();
        prywatny PanguHelper() { }

        /// <summary>
        [Domyślnie używa pangu.xml profilu na tej samej ścieżce]
        /// </summary>
        /// <returns></returns>
        publiczny statyczny PanguHelper ShareHelper
        {
            Pobierz
            {
                jeśli (_instance == null)
                {
                    lock (lockHelper)
                    {
                        jeśli (_instance == null)
                        {
                            _instance = nowy PanguHelper();
                            string configFile = ConfigurationManager.AppSettings["PANGU_CONFIG"] + "";
                            if (configFile != "")
                            {
                                _instance. Użyj(configFile);
                            }
                        }
                    }
                }

                powrót _instance;
            }
        }

        /// <summary>
        Zainicjalizuj określony plik konfiguracyjny
        /// </summary>
        <param name="configFile"> pliku konfiguracyjnego pangu</param>
        public void Use(string configFile)
        {
            PanGu.Segment.Init(configFile);
        }

        /// <summary>
        Uzyskaj opis części mowy
        /// </summary>
        <nazwa paramu="pos"> wyliczanie części mowy</param>
        /// <returns></returns>
        public string GetPosDescrip{filter}t(POS pos)
        {
            Przełącznik (pos)
            {
                POS. w sprawie POS. POS_UNK: powrót "nieznana część mowy;"
                POS. w sprawie POS. POS_D_K: przywróć "komponent końcowy";
                POS. w sprawie POS. POS_D_H: zwróć "poprzedzający komponent";
                POS. w sprawie POS. POS_A_NZ: przywróć "inne imię własne";
                POS. w sprawie POS. POS_A_NX: powrót "obcy znak";
                POS. w sprawie POS. POS_A_NR: zwróć "imię osoby";
                POS. w sprawie POS. POS_D_Z: zwróć "słowo statusu";
                POS. w sprawie POS. POS_A_NT: powrót "ciało instytucji";
                POS. w sprawie POS. POS_A_NS: przywrócić "nazwę miejsca";
                POS. w sprawie POS. POS_D_Y: przywróć "morfem nastroju";
                POS. w sprawie POS. POS_D_X: przywróć "słowo niemorfemiczne";
                POS. w sprawie POS. POS_D_W: zwróć "interpunkcję";
                POS. w sprawie POS. POS_D_T: powrót "word of time";
                POS. w sprawie POS. POS_D_S: zwróć "postać słowo";
                POS. w sprawie POS. POS_D_V: przywróć "morfem czasownikowy";
                POS. w sprawie POS. POS_D_U: zwróć "morfem cząstek cząstek";
                POS. w sprawie POS. POS_D_R: powrót "morfem zaimków zaimków";
                POS. w sprawie POS. POS_A_Q: przywróć "morfem kwantyfikatora kwantyfikatora";
                POS. w sprawie POS. POS_D_P: powrót "przyimek";
                POS. w sprawie POS. POS_D_MQ: zwróć "kwantyfikator";
                POS. w sprawie POS. POS_A_M: zwróć "numeral, numeral, numeral";
                POS. w sprawie POS. POS_D_O: powrót "onomatopeja";
                POS. w sprawie POS. POS_D_N: przywróć "morfem rzeczownikowy";
                POS. w sprawie POS. POS_D_F: przywróć "morfem azimutowy słowa azymutalny";
                POS. w sprawie POS. POS_D_E: przywróć "morfem wykrzykowania";
                POS. w sprawie POS. POS_D_L: przywrócić "idiom";
                POS. w sprawie POS. POS_D_I: powrót "idiom";
                POS. w sprawie POS. POS_D_D: return "morfem przysłówkowy przysłówek";
                POS. w sprawie POS. POS_D_C: przywróć "morfem konjunkcji koniunktywnej";
                POS. w sprawie POS. POS_D_B: return "aby rozróżnić słowa i rozróżnić morfemy";
                POS. w sprawie POS. POS_D_A: przywróć "morfem przymiotnikowy";
            }
            return "nieznana część mowy";
        }



        /// <summary>
        Pobierz imiesłów [Oryginalne informacje o słowie]
        /// </summary>
        <nazwa parametru="treść"> treść słowa do oddzielenia</param>
        <nazwa parametru="matchOptions"> użyj opcji dopasowania</param>
        <param name="matchParameter"> użyj parametru match</param>
        /// <returns></returns>
        public ICollection<WordInfo> GetSegmentWords(zawartość ciągu ciągów, MatchOptions matchOptions = null,
           MatchParameter matchParameter = null)
        {
            Segment = nowy Segment();
            Słowa ICollection<WordInfo> = segment. DoSegment(content, matchOptions, matchParameter);
            oddać słowa;
        }



        /// <summary>
        Otrzymaj imiesłów
        /// </summary>
        <nazwa parametru="treść"> treść słowa do oddzielenia</param>
        <param name="matchOptions"> Opcje dopasowania są używane, a nie domyślnie</param>
        <param name="matchParameter" > używać parametru dopasowania, nie domyślnie</param>
        public List<string> GetSplitWords(zawartość ciągu tekstu, MatchOptions matchOptions = null, MatchParameter matchParameter = null)
        {
            Segment = nowy Segment();
            Słowa ICollection<WordInfo> = segment. DoSegment(content,matchOptions,matchParameter);
            <string> List List = nowa List<string>();
            foreach (słowo WordInfo w słowach)
            {
                listę. Dodaj(word). Word);
            }
            lista zwrotów;
        }


        /// <summary>
        Uzyskaj imiesłów o określonej częstotliwości słowa
        /// </summary>
        <nazwa parametru="treść"> treść słowa do oddzielenia</param>
        <nazwa parametru="częstotliwość"> częstotliwość słów</param>
        <param name="matchOptions"> Opcje dopasowania są używane, a nie domyślnie</param>
        <param name="matchParameter" > używać parametru dopasowania, nie domyślnie</param>
        /// <returns></returns>
        public List<string> GetSplitWordsByFrequency (zawartość ciągu ciągów, podwójna częstotliwość, MatchOptions matchOptions = null,
            MatchParameter matchParameter = null)
        {
            Segment = nowy Segment();
            Słowa ICollection<WordInfo> = segment. DoSegment(content, matchOptions, matchParameter);

            <string> List List = nowa List<string>();
            foreach (słowo WordInfo w słowach)
            {
                jeśli (częstotliwość == słowo. Częstotliwość)
                {
                    listę. Dodaj(word). Word);
                }
            }
            lista zwrotów;
        }


        /// <summary>
        Uzyskaj imiesłów o określonej wadze
        /// </summary>
        <nazwa parametru="treść"> treść słowa do oddzielenia</param>
        <nazwa="stopień"> waga</param>
        <param name="matchOptions"> Opcje dopasowania są używane, a nie domyślnie</param>
        <param name="matchParameter" > używać parametru dopasowania, nie domyślnie</param>
        /// <returns></returns>
        publiczna lista<string> GetSplitWordsByRank(zawartość ciągu ciągów, int rank, MatchOptions matchOptions = null,
            MatchParameter matchParameter = null)
        {
            Segment = nowy Segment();
            Słowa ICollection<WordInfo> = segment. DoSegment(content, matchOptions, matchParameter);

            <string> List List = nowa List<string>();
            foreach (słowo WordInfo w słowach)
            {
                if (rang == słowo. Stopień)
                {
                    listę. Dodaj(word). Word);
                }
            }
            lista zwrotów;
        }


        /// <summary>
        Najważniejsze momenty
        /// </summary>
        <nazwa parametru="słowo kluczowe"> ciąg do podświetlenia</param>
        <nazwa parametru="content">treść</param>
        <nazwa parametru="fragmentSize"> liczba znaków dla każdego pola podsumowania</param>
        <returns>Wyróżnione treści</returns>
        publiczny statyczny ciąg HighLight (słowo kluczowe w ciągu ciągu, zawartość ciągu znaków, int fragmentSize)
        {
            Stwórz kod HTML z parametrem podkreślającym hasło wyszukiwania  
            SimpleHTMLFormatter simpleHTMLFormatter = nowy SimpleHTMLFormatter("<font color='red'>", "</font>");
            Utwórz podświetlenie, wprowadź kod HTML i Pangu Semgent  
            Highlighter highter = nowy Highlighter(simpleHTMLFormatter, nowy Segment());
            Ustaw liczbę znaków dla każdego pola podsumowania  
            Wyższy. FragmentSize = fragmentSize;
            string highlightStr = highter. GetBestFragment (słowo kluczowe, treść);

            jeśli (ciąg ciągu. IsNullOrEmpty(highlightStr))
            {
                powrót zawartości;
            }
            return highlightStr;
        }



    }

}


Wynik

Liczba uczestników1MB+2 przyczynić się+2 Zapaść powód
Mały śmiecie + 2 + 2 Bardzo potężne!

Zobacz wszystkie oceny





Poprzedni:Narzędzie dostępu do baz danych php Medoo
Następny:Czy Hammer Technology Big Bang splagiatował Zhong Yingpina?
Opublikowano 17.07.2017 10:55:05 |
Dziękuję za podzielenie się tym, że segmentacja słów jest niezbędna w systemie CMS
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com