Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 23439|Yanıt: 1

[Kaynak] Pangu kelime segmentasyon asistanı

[Bağlantıyı kopyala]
Yayınlandı 17.07.2017 10:02:38 | | |
System kullanmak;
System.Collections.Generic kullanılarak;
System.Linq kullanarak;
System.Text kullanarak;
System.Threading.Tasks kullanılarak;
PanGu.Dict kullanarak;
PanGu.Framework kullanarak;
PanGu.Match kullanarak;
PanGu.Setting kullanılarak;
PanGu.HighLight kullanarak;
Lucene.Net.Analysis kullanılarak;
System.IO kullanmak;
PanGu kullanarak;
System.Configuration kullanılarak;

isim alanı Pangu.Yardımçı
{
    kamu sınıfı PanguHelper
    {

        özel değişken statik PanguHelper _instance = null;
        özel statik okunabilir tek okunabilir nesne lockHelper = yeni nesne();
        özel PanguHelper() { }

        /// <summary>
        [Varsayılan olarak aynı yol altında pangu.xml profil kullanılır]
        /// </summary>
        /// <returns></returns>
        kamu statik PanguHelper ShareHelper
        {
            Al
            {
                eğer (_instance == null)
                {
                    kilit (kilit yardımcısı)
                    {
                        eğer (_instance == null)
                        {
                            _instance = yeni PanguHelper();
                            string configFile = ConfigurationManager.AppSettings["PANGU_CONFIG"] + """;
                            if (configFile != "")
                            {
                                _instance. Use(configFile);
                            }
                        }
                    }
                }

                _instance dönüş;
            }
        }

        /// <summary>
        Belirtilen yapılandırma dosyasını başlatın
        /// </summary>
        <param name="configFile"> pangu configuration file</param>
        public void Use(string configFile)
        {
            PanGu.Segment.Init(configFile);
        }

        /// <summary>
        Bir konuşma açıklaması alın
        /// </summary>
        <param name="pos"> konuşma kısmı sayımı</param>
        /// <returns></returns>
        public string GetPosDescrip{filter}t(POS pos)
        {
            Switch (POS)
            {
                Case POS. POS_UNK: "bilinmeyen konuşma kısmı" geri döner;
                Case POS. POS_D_K: "takip bileşeni" döndür;
                Case POS. POS_D_H: "önceki bileşen" döndürün;
                Case POS. POS_A_NZ: "diğer özel isim" döndürülür;
                Case POS. POS_A_NX: "yabancı karakter" geri dönün;
                Case POS. POS_A_NR: "kişinin adı" döndürülür;
                Case POS. POS_D_Z: "durum kelimesi" döndür;
                Case POS. POS_A_NT: "kurumlar topluluğu" geri döner;
                Case POS. POS_A_NS: "Yer adı" döndür;
                Case POS. POS_D_Y: "ruh hali kelimesi ruh hali morfem" döner;
                Case POS. POS_D_X: "morfemik olmayan kelime" döndür;
                Case POS. POS_D_W: "noktalama işareti" döndür;
                Case POS. POS_D_T: "Word of time" döndür;
                Case POS. POS_D_S: "yer kelimesi" döndür;
                Case POS. POS_D_V: "fiil morfemi" döndür;
                Case POS. POS_D_U: "parçacık parçacık morfemi" döndür;
                Case POS. POS_D_R: "zamir zamiri morfem" döndür;
                Case POS. POS_A_Q: "nicelikçi nicelikçi morfem" döner;
                Case POS. POS_D_P: "edat" döndürülür;
                Case POS. POS_D_MQ: "niceleyici" döndür;
                Case POS. POS_A_M: "rakam, sayı, sayı" döndür;
                Case POS. POS_D_O: "onomatopoeia" geri dönün;
                Case POS. POS_D_N: "isim morfemi" döner;
                Case POS. POS_D_F: "azimut kelimesi azimut morfemi" döner;
                Case POS. POS_D_E: "Müdahale morfemi" döndür;
                Case POS. POS_D_L: "deyim" geri dönün;
                Case POS. POS_D_I: "deyim" döner;
                Case POS. POS_D_D: "zarf zarf morfemi" döner;
                Case POS. POS_D_C: "konjonktif birleşim morfem"i döndür;
                Case POS. POS_D_B: return "kelimeleri ayırt etmek için morfemleri ayırt etmek";
                Case POS. POS_D_A: "sıfat morfem" döndürün;
            }
            "bilinmeyen konuşma kısmı" geri döner;
        }



        /// <summary>
        Söz dedekli [Orijinal Kelime Bilgisi] alın
        /// </summary>
        <param name="içerik"> ayrılacak kelimenin içeriği</param>
        <param name="matchOptions"> eşleştirme seçeneklerini kullanın</param>
        <param name="matchParameter"> match parametresini kullanın</param>
        /// <returns></returns>
        public ICollection<WordInfo> GetSegmentWords(string content, MatchOptions matchOptions = null,
           MatchParameter matchParameter = null)
        {
            Segment segmenti = yeni Segment();
            Ollection<WordInfo> kelimeleri = segment. DoSegment(content, matchOptions, matchParameter);
            kelimeleri geri ver;
        }



        /// <summary>
        Girişleri alın
        /// </summary>
        <param name="içerik"> ayrılacak kelimenin içeriği</param>
        <param name="matchOptions"> Match seçenekleri kullanılıyor, varsayılan olarak değil</param>
        <param name="matchParameter" > eşleştirme parametresini kullanmalısınız, varsayılan olarak değil</param>
        public List<string> GetSplitWords (dizi içeriği, MatchOptions matchOptions = null, MatchParameter matchParameter = null)
        {
            Segment segmenti = yeni Segment();
            Ollection<WordInfo> kelimeleri = segment. DoSegment(content, matchOptions, matchParameter);
            List<string> list = yeni List<string>();
            foreach (WordInfo kelime halinde kelime)
            {
                liste. Add(word. Word);
            }
            dönüş listesi;
        }


        /// <summary>
        Belirtilen kelime frekansının damazlık noktasını elde edin
        /// </summary>
        <param name="içerik"> ayrılacak kelimenin içeriği</param>
        <param name="frekans"> kelime frekansı</param>
        <param name="matchOptions"> Match seçenekleri kullanılıyor, varsayılan olarak değil</param>
        <param name="matchParameter" > eşleştirme parametresini kullanmalısınız, varsayılan olarak değil</param>
        /// <returns></returns>
        public List<string> GetSplitWordsByFrequency (dizi içeriği, çift frekans, MatchOptions matchOptions = null,
            MatchParameter matchParameter = null)
        {
            Segment segmenti = yeni Segment();
            Ollection<WordInfo> kelimeleri = segment. DoSegment(content, matchOptions, matchParameter);

            List<string> list = yeni List<string>();
            foreach (WordInfo kelime halinde kelime)
            {
                eğer (frekans == kelime. Frekans)
                {
                    liste. Add(word. Word);
                }
            }
            dönüş listesi;
        }


        /// <summary>
        Belirli bir ağırlıkta bir damazlık alın
        /// </summary>
        <param name="içerik"> ayrılacak kelimenin içeriği</param>
        <param name="rütbe"> ağırlık</param>
        <param name="matchOptions"> Match seçenekleri kullanılıyor, varsayılan olarak değil</param>
        <param name="matchParameter" > eşleştirme parametresini kullanmalısınız, varsayılan olarak değil</param>
        /// <returns></returns>
        public List<string> GetSplitWordsByRank(string content, int rank, MatchOptions matchOptions = null,
            MatchParameter matchParameter = null)
        {
            Segment segmenti = yeni Segment();
            Ollection<WordInfo> kelimeleri = segment. DoSegment(content, matchOptions, matchParameter);

            List<string> list = yeni List<string>();
            foreach (WordInfo kelime halinde kelime)
            {
                if (rank == kelime. Rütbe)
                {
                    liste. Add(word. Word);
                }
            }
            dönüş listesi;
        }


        /// <summary>
        Öne Çıkanlar
        /// </summary>
        <param name="anahtar kelime"> diziyi vurgulamak</param> için
        <param name="içerik">content</param>
        <param name="fragmentSize"> her özet alanı için karakter sayısı</param>
        <returns>Öne çıkan içerikler</returns>
        public static string HighLight(string anahtar kelimesi, string content, int fragmentSize)
        {
            Arama terimini vurgulayan parametreyle bir HTML kodu oluşturun  
            SimpleHTMLFormatter simpleHTMLFormatter = yeni SimpleHTMLFormatter ("<font color='red'>", "</font>");
            Vurgulama oluşturun, HTML kodunu girin ve Pangu nesnesi Semgent  
            Vurgulayıcı highter = yeni Highlighter(simpleHTMLFormatter, new Segment());
            Her özet alanı için karakter sayısını ayarlayın  
            daha yüksek. FragmentSize = fragmentSize;
            string highlightStr = highter. GetBestFragment(anahtar kelime, içerik);

            if (string. IsNullOrEmpty(highlightStr))
            {
                içerik geri getirmek;
            }
            dönüş vurguStr;
        }



    }

}


Puan

Katılımcı sayısı1MB+2 Katkı+2 Çökmek sebep
Küçük + 2 + 2 Çok güçlü!

Tüm puanları gör





Önceki:php veritabanı erişim aracı Medoo
Önümüzdeki:Hammer Technology Big Bang Zhong Yingpin'i intihal etti mi?
Yayınlandı 17.07.2017 10:55:05 |
CMS sisteminde kelime segmentasyonu meselesinin çok önemli olduğunu paylaştığınız için teşekkür ederim
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com