menggunakan Sistem; menggunakan System.Collections.Generic; menggunakan System.Linq; menggunakan System.Text; menggunakan System.Threading.Tasks; menggunakan PanGu.Dict; menggunakan PanGu.Framework; menggunakan PanGu.Match; menggunakan PanGu.Setting; menggunakan PanGu.HighLight; menggunakan Lucene.Net.Analysis; menggunakan System.IO; menggunakan PanGu; menggunakan System.Configuration;
namespace Pangu.Helper
{ kelas umum PanguHelper {
PanguHelper statis volatil pribadi _instance = null; objek readonly statis privat lockHelper = objek baru(); pribadi PanguHelper() { }
/// <summary> [Default menggunakan profil pangu.xml di bawah jalur yang sama] /// </summary> /// <returns></returns> publik statis PanguHelper ShareHelper { dapatkan { jika (_instance == null) { kunci (lockHelper) { jika (_instance == null) { _instance = PanguHelper baru(); string configFile = ConfigurationManager.AppSettings["PANGU_CONFIG"] + ""; if (configFile != "") { _instance. Gunakan(configFile); } } } }
mengembalikan _instance; } }
/// <summary> Menginisialisasi file konfigurasi yang ditentukan /// </summary> <param name="configFile"> file konfigurasi pangu</param> public void Use(string configFile) { PanGu.Segment.Init(configFile); }
/// <summary> Mendapatkan deskripsi bagian pidato /// </summary> <param name="pos"> bagian dari pencacahan ucapan</param> /// <returns></returns> string publik GetPosDescrip{filter}t(POS pos) { Beralih (POS) { kasus POS. POS_UNK: mengembalikan "bagian pidato yang tidak diketahui;" kasus POS. POS_D_K: mengembalikan "komponen trailing"; kasus POS. POS_D_H: mengembalikan "komponen sebelumnya"; kasus POS. POS_A_NZ: mengembalikan "nama lain yang tepat"; kasus POS. POS_A_NX: mengembalikan "karakter asing"; kasus POS. POS_A_NR: mengembalikan "nama orang"; kasus POS. POS_D_Z: mengembalikan "kata status"; kasus POS. POS_A_NT: mengembalikan "badan lembaga"; kasus POS. POS_A_NS: mengembalikan "nama tempat"; kasus POS. POS_D_Y: mengembalikan "morfem suasana hati kata mood"; kasus POS. POS_D_X: mengembalikan "kata non-morfem"; kasus POS. POS_D_W: mengembalikan "tanda baca"; kasus POS. POS_D_T: mengembalikan "kata waktu"; kasus POS. POS_D_S: kembalikan "kata tempat"; kasus POS. POS_D_V: mengembalikan "morfem kata kerja"; kasus POS. POS_D_U: mengembalikan "morfem partikel partikel"; kasus POS. POS_D_R: mengembalikan "morfem kata ganti kata ganti"; kasus POS. POS_A_Q: mengembalikan "morfem pengukur kuantitifier"; kasus POS. POS_D_P: mengembalikan "preposisi"; kasus POS. POS_D_MQ: mengembalikan "quantifier"; kasus POS. POS_A_M: mengembalikan "angka, angka, angka"; kasus POS. POS_D_O: mengembalikan "onomatopoeia"; kasus POS. POS_D_N: mengembalikan "morfem kata benda"; kasus POS. POS_D_F: mengembalikan "morfem azimuth kata azimuth"; kasus POS. POS_D_E: mengembalikan "morfem interjeksi"; kasus POS. POS_D_L: mengembalikan "idiom"; kasus POS. POS_D_I: mengembalikan "idiom"; kasus POS. POS_D_D: mengembalikan "morfem kata keterangan keterangan"; kasus POS. POS_D_C: mengembalikan "morfem konjungsi konjungtif"; kasus POS. POS_D_B: kembali "untuk membedakan kata-kata untuk membedakan morfem"; kasus POS. POS_D_A: mengembalikan "morfem kata sifat"; } mengembalikan "bagian pidato yang tidak diketahui"; }
/// <summary> Dapatkan participle [Info Kata Asli] /// </summary> <param name="content"> isi kata yang akan dipisahkan</param> <param name="matchOptions"> menggunakan opsi pencocokan</param> <param name="matchParameter"> menggunakan parameter match</param> /// <returns></returns> publik ICollection<WordInfo> GetSegmentWords(konten string, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmen segmen = segmen baru Segmen(); Kata-kata ICollection<WordInfo> = segmen. DoSegment(content, matchOptions, matchParameter); mengembalikan kata-kata; }
/// <summary> Dapatkan participle /// </summary> <param name="content"> isi kata yang akan dipisahkan</param> <param name="matchOptions"> Opsi pencocokan digunakan, bukan secara default</param> <param name="matchParameter" > menggunakan parameter yang cocok, bukan secara default</param> publik List<string> GetSplitWords(konten string, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmen segmen = segmen baru Segmen(); Kata-kata ICollection<WordInfo> = segmen. DoSegment(content,matchOptions,matchParameter); <string> Daftar daftar = Daftar baru<string>(); foreach (kata WordInfo dalam kata-kata) { daftar. Tambah(kata. Kata); } daftar pengembalian; }
/// <summary> Dapatkan participle dari frekuensi kata yang ditentukan /// </summary> <param name="content"> isi kata yang akan dipisahkan</param> <param name="frekuensi"> frekuensi kata</param> <param name="matchOptions"> Opsi pencocokan digunakan, bukan secara default</param> <param name="matchParameter" > menggunakan parameter yang cocok, bukan secara default</param> /// <returns></returns> publik List<string> GetSplitWordsByFrequency(konten string, frekuensi ganda, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmen segmen = segmen baru Segmen(); Kata-kata ICollection<WordInfo> = segmen. DoSegment(content, matchOptions, matchParameter);
<string> Daftar daftar = Daftar baru<string>(); foreach (kata WordInfo dalam kata-kata) { if (frekuensi == kata. Frekuensi) { daftar. Tambah(kata. Kata); } } daftar pengembalian; }
/// <summary> Dapatkan participle dengan bobot tertentu /// </summary> <param name="content"> isi kata yang akan dipisahkan</param> <param name="rank"> berat</param> <param name="matchOptions"> Opsi pencocokan digunakan, bukan secara default</param> <param name="matchParameter" > menggunakan parameter yang cocok, bukan secara default</param> /// <returns></returns> public List<string> GetSplitWordsByRank(konten string, int rank, MatchOptions matchOptions = null, MatchParameter matchParameter = null) { Segmen segmen = segmen baru Segmen(); Kata-kata ICollection<WordInfo> = segmen. DoSegment(content, matchOptions, matchParameter);
<string> Daftar daftar = Daftar baru<string>(); foreach (kata WordInfo dalam kata-kata) { if (rank == kata. Peringkat) { daftar. Tambah(kata. Kata); } } daftar pengembalian; }
/// <summary> Sorotan /// </summary> <param name="keyword"> string yang akan disorot</param> <param name="content">content</param> <param name="fragmentSize"> jumlah karakter untuk setiap bidang ringkasan</param> <returns>Konten yang disorot</returns> string statis publik HighLight (kata kunci string, konten string, int fragmentSize) { Buat kode HTML dengan parameter yang menyoroti istilah penelusuran SimpleHTMLFormatter simpleHTMLFormatter = new SimpleHTMLFormatter("<font color='red'>", "</font>"); Buat penyorotan, masukkan kode HTML dan objek Pangu Semgent Penyorot lebih tinggi = Penyorot baru(simpleHTMLFormatter, Segmen baru()); Atur jumlah karakter untuk setiap bidang ringkasan lebih tinggi. FragmentSize = fragmentSize; string highlightStr = lebih tinggi. GetBestFragment(kata kunci, konten);
if (string. IsNullOrEmpty(highlightStr)) { mengembalikan konten; } kembali sorotanStr; }
}
}
|