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; }
}
}
|