
Lewati bagian:
Paket text_analysis menyediakan metode untuk tokenize teks, menghitung skor ketiatan untuk dokumen dan mengevaluasi kesamaan terms . Ini dimaksudkan untuk digunakan dalam pemrosesan bahasa alami ( NLP ) sebagai bagian dari sistem pengambilan informasi.
Itu dibagi menjadi tiga perpustakaan:
Lihat referensi untuk mempelajari lebih lanjut tentang sistem pengambilan informasi dan teori di balik perpustakaan ini.
Tokenisasi terdiri dari langkah -langkah berikut:
term splitter membagi teks ke daftar istilah di tempat-tempat yang sesuai seperti ruang putih dan tanda baca tengah kalimat;character filter memanipulasi istilah sebelum tokenisasi (misalnya mengubah kasus dan / atau menghapus karakter non-kata);term filter memanipulasi istilah dengan membagi senyawa atau istilah hyphenated atau menerapkan stemming dan lemmatisasi. termFilter juga dapat menyaring stopwords ; Dantokenizer mengubah istilah menjadi kumpulan tokens yang berisi versi tokenisasi istilah dan pointer ke posisi istilah tokenized (n-gram) dalam teks sumber. Token dihasilkan untuk kata kunci, istilah dan/atau n-gram, tergantung pada TokenizingStrategy yang dipilih. Kisaran N-Gram yang diinginkan dapat dilewati ketika tokenisasi teks atau dokumen. 
TextDocument menyebutkan paragraf , kalimat , istilah dan token dokumen teks dan menghitung langkah -langkah keterbacaan:
Flesch reading ease score , ukuran yang dibaca yang dihitung dari panjang kalimat dan panjang kata pada skala 100 poin; DanFlesch-Kincaid grade level , ukuran yang mudah dibaca relatif terhadap tingkat kelas sekolah AS. TextDocument juga mencakup grafik co-kejadian yang dihasilkan menggunakan algoritma ekstraksi kata kunci (RACHE) yang cepat, dari mana kata kunci (dan skor kata kunci) dapat diperoleh. Ukuran kesamaan term berikut disediakan sebagai ekstensi pada string:
Damerau–Levenshtein distance adalah jumlah minimum edit karakter tunggal (transposisi, penyisipan, penghapusan atau substitusi) yang diperlukan untuk mengubah satu term menjadi yang lain;edit similarity adalah ukuran yang dinormalisasi dari Damerau–Levenshtein distance pada skala 0,0 hingga 1,0, dihitung dengan membagi perbedaan antara jarak edit maksimum (jumlah panjang kedua istilah) dan editDistance yang dihitung, dengan jarak edit maksimum;length distance mengembalikan nilai absolut dari perbedaan panjang antara dua istilah;character similarity Mengembalikan kesamaan dua istilah karena berkaitan dengan kumpulan karakter unik dalam setiap istilah pada skala 0,0 hingga 1,0;length similarity Mengembalikan panjang kesamaan antara dua istilah pada skala 0,0 hingga 1,0 pada skala log (1 - log rasio panjang istilah); DanJaccard similarity mengukur kesamaan antara set sampel hingga, dan didefinisikan sebagai ukuran persimpangan dibagi dengan ukuran penyatuan set sampel. Kelas SeciMilarity menyebutkan semua ukuran kesamaan dari dua istilah dan memberikan TermSimilarity.similarity .
Kelas SeciMilarity juga menyediakan fungsi untuk pemisahan istilah menjadi k-grams , digunakan dalam algoritma koreksi mantra.
( kembali ke atas )
Di pubspec.yaml proyek flutter Anda, tambahkan ketergantungan berikut:
dependencies :
text_analysis : <latest version> Dalam file kode Anda, tambahkan impor pustaka text_analysis. Ini juga akan mengimpor kelas Porter2Stemmer dari paket porter_2_stemmer .
// import the core classes
import 'package:text_analysis/text_analysis.dart' ;
Untuk menggunakan ekstensi paket dan/atau tipe definisi, juga tambahkan impor berikut:
// import the implementation classes, if needed
import 'package:text_indexing/implementation.dart' ;
// import the typedefs, if needed
import 'package:text_indexing/type_definitions.dart' ;
// import the extensions, if needed
import 'package:text_indexing/extensions.dart' ;
Tokenisasi Bahasa Inggris Dasar dapat dilakukan dengan menggunakan English.analyzer .
// Use the static English.analyzer instance to tokenize the text using the
// English analyzer.
final tokens = await English .analyzer. tokenizer (readabilityExample,
strategy : TokenizingStrategy .all, nGramRange : NGramRange ( 1 , 2 ));Untuk menganalisis teks atau dokumen, hycrate a textdocument untuk mendapatkan statistik teks dan skor yang mudah dibaca:
// get some sample text
final sample =
'The Australian platypus is seemingly a hybrid of a mammal and reptilian creature.' ;
// hydrate the TextDocument
final textDoc = await TextDocument . analyze (
sourceText : sample,
analyzer : English .analyzer,
nGramRange : NGramRange ( 1 , 3 ));
// print the `Flesch reading ease score`
print (
'Flesch Reading Ease: ${ textDoc . fleschReadingEaseScore (). toStringAsFixed ( 1 )}' );
// prints "Flesch Reading Ease: 37.5" Untuk membandingkan istilah, hubungi ekstensi yang diinginkan pada term tersebut, atau metode statis dari kelas SeciMilarity:
// define a misspelt term
const term = 'bodrer' ;
// a collection of auto-correct options
const candidates = [
'bord' ,
'board' ,
'broad' ,
'boarder' ,
'border' ,
'brother' ,
'bored'
];
// get a list of the terms orderd by descending similarity
final matches = term. matches (candidates);
// same as TermSimilarity.matches(term, candidates))
// print matches
print ( 'Ranked matches: $ matches ' );
// prints:
// Ranked matches: [border, boarder, bored, brother, board, bord, broad]
//
Silakan lihat contoh untuk lebih jelasnya.
( kembali ke atas )
Antarmuka kunci dari perpustakaan text_analysis dijelaskan secara singkat di bagian ini. Silakan merujuk ke dokumentasi untuk detailnya.
API berisi cukup banyak pelat boiler, tetapi kami bertujuan untuk membuat kode tersebut dapat dibaca, dapat diperpanjang dan dapat digunakan kembali mungkin:
interface > implementation mixin > base-class > implementation class pattern :interface adalah kelas abstrak yang memaparkan bidang dan metode tetapi tidak mengandung kode implementasi. interface dapat mengekspos konstruktor pabrik yang mengembalikan instance implementation class ;implementation mixin mengimplementasikan metode kelas interface , tetapi bukan bidang input;base-class adalah kelas abstrak dengan implementation mixin dan memperlihatkan konstruktor konstanta generatif yang tidak disebutkan namanya untuk sub-kelas. Tujuannya adalah bahwa implementation classes memperluas base class , mengesampingkan bidang input interface dengan properti akhir yang dilewati melalui konstruktor generatif const.( kembali ke atas )
Kelas SeciMilarity memberikan langkah -langkah kesamaan berikut antara dua istilah:
characterSimilarity mengembalikan kesamaan dua istilah karena berkaitan dengan koleksi karakter unik dalam setiap istilah pada skala 0,0 hingga 1,0;editDistance Mengembalikan Damerau–Levenshtein distance , jumlah minimum pengeditan karakter tunggal (transposisi, penyisipan, penghapusan atau substitusi) yang diperlukan untuk mengubah satu term menjadi yang lain;editSimilarity mengembalikan ukuran yang dinormalisasi dari Damerau–Levenshtein distance pada skala 0,0 hingga 1,0, dihitung dengan membagi perbedaan antara jarak edit maksimum (jumlah panjang dua istilah) dan editDistance yang dihitung, dengan jarak edit maksimum;lengthDistance mengembalikan nilai absolut dari perbedaan panjang antara dua istilah;lengthSimilarity mengembalikan panjang kesamaan antara dua istilah pada skala 0,0 hingga 1,0 pada skala log (1 - log rasio panjang istilah);jaccardSimilarity mengembalikan indeks kesamaan jaccard dari dua istilah.Untuk membandingkan satu istilah dengan kumpulan istilah lain, metode statis berikut juga disediakan:
editDistanceMap mengembalikan hashmap terms ke editSimilarity mereka dengan istilah;editSimilarityMap Mengembalikan hashmap terms ke editSimilarity mereka dengan istilah;lengthSimilarityMap mengembalikan hashmap terms ke lengthSimilarity dengan istilah;jaccardSimilarityMap mengembalikan hashmap terms ke indeks kesamaan jaccard dengan istilah;termSimilarityMap mengembalikan hashmap terms ke istilah persyaratan dengan istilah;termSimilarities , editSimilarities , characterSimilarities , lengthSimilarities dan jaccardSimilarities semuanya mengembalikan daftar nilai [kesamaan] untuk istilah kandidat; Danmatches mengembalikan pertandingan terbaik dari terms untuk suatu istilah, dalam urutan kemiripan istilah (pertandingan terbaik pertama).Perbandingan string tidak peka terhadap kasus.
Kelas TextSimilarity bergantung pada metode ekstensi yang dapat diimpor dari perpustakaan ekstensi.
( kembali ke atas )
Antarmuka TextAnalyzer memaparkan sifat dan metode spesifik bahasa yang digunakan dalam analisis teks:
LatinLanguageAnalyzer mengimplementasikan metode antarmuka TextAnalyzer untuk bahasa yang menggunakan set alfabet/karakter Latin/Romawi.
Implementasi TextAnalyzer bahasa Inggris termasuk dalam perpustakaan ini dan campuran di LatinLanguageAnalyzerMixin .
( kembali ke atas )
Model objek TextDocument menyebutkan paragraf dokumen teks, kalimat , istilah , kata kunci , n-gram , jumlah suku kata dan token dan menyediakan fungsi yang mengembalikan langkah-langkah analisis teks:
TextDocumentMixin mengimplementasikan AverageSentEnceLength, AverageSyllablecount, WordCount, Fleschreadingeasescore dan FLESCHKINCAIDGRADELEVEL METODE.
Sebuah dokumen teks dapat dihidrasi dengan konstruktor pabrik yang tidak disebutkan namanya atau menggunakan metode statis Analisis atau Analisis. Atau, Perluas kelas TextDocumentBase.
( kembali ke atas )
Definisi berikut digunakan di seluruh dokumentasi:
corpus - Kumpulan documents yang dipertahankan index .cosine similarity - Kesamaan dua vektor yang diukur sebagai cosinus dari sudut di antara mereka, yaitu, produk titik vektor dibagi dengan produk panjang Euclidian mereka (dari Wikipedia).character filter - Menyaring karakter dari teks dalam persiapan tokenisasi.Damerau–Levenshtein distance - metrik untuk mengukur edit distance antara dua terms dengan menghitung jumlah minimum operasi (penyisipan, penghapusan atau substitusi dari satu karakter, atau transposisi dua karakter yang berdekatan) diperlukan untuk mengubah satu term ke yang lain (dari wikipedia).dictionary (in an index) - A Hash of terms ( vocabulary ) dengan frekuensi kejadian dalam dokumen corpus .document - Catatan dalam corpus , yang memiliki pengidentifikasi unik ( docId ) di kunci utama corpus dan yang berisi satu atau lebih bidang teks yang diindeks.document frequency (dFt) - Jumlah dokumen dalam corpus yang berisi istilah.edit distance - ukuran seberapa berbeda dua istilah dengan menghitung jumlah minimum operasi yang diperlukan untuk mengubah satu string menjadi yang lain (dari wikipedia).etymology - Studi tentang sejarah bentuk kata -kata dan, dengan ekstensi, asal dan evolusi makna semantik mereka lintas waktu (dari Wikipedia).Flesch reading ease score - Ukuran yang dibaca yang dihitung dari panjang kalimat dan panjang kata pada skala 100 poin. Semakin tinggi skor, semakin mudah untuk memahami dokumen (dari Wikipedia).Flesch-Kincaid grade level - Ukuran yang dibaca relatif terhadap tingkat kelas sekolah AS. Ini juga dihitung dari panjang kalimat dan panjang kata (dari wikipedia).IETF language tag - Kode atau tag standar yang digunakan untuk mengidentifikasi bahasa manusia di internet. (dari Wikepedia).index - Indeks terbalik yang digunakan untuk mencari referensi document dari corpus terhadap vocabulary terms .index-elimination - Memilih subset dari entri dalam indeks di mana term berada dalam kumpulan terms dalam frasa pencarian.inverse document frequency (iDft) - Ukuran yang dinormalisasi tentang seberapa jarang suatu term dalam korpus. Ini didefinisikan sebagai log (N / dft) , di mana n adalah jumlah total istilah dalam indeks. iDft dari istilah langka tinggi, sedangkan iDft dari istilah yang sering cenderung rendah.Jaccard index mengukur kesamaan antara set sampel hingga, dan didefinisikan sebagai ukuran persimpangan dibagi dengan ukuran penyatuan set sampel (dari Wikipedia).Map<String, dynamic> adalah akronim untuk "Java Script Object Notation" , format umum untuk data yang bertahan.k-gram - Urutan karakter (any) K berturut -turut dari suatu term . k-gram dapat dimulai dengan "$", menunjukkan awal istilah, dan diakhiri dengan "$", menunjukkan akhir istilah. 3-gram untuk "kastil" adalah { lemma or lemmatizer - Lemmatisasi (atau lemmatisasi) dalam linguistik adalah proses pengelompokan bersama -sama bentuk -bentuk kata yang dipengaruhi sehingga mereka dapat dianalisis sebagai satu item, diidentifikasi oleh lemma kata, atau bentuk kamus (dari wikipedia).n-gram (kadang-kadang juga disebut q-gram) adalah urutan yang berdekatan dari item n dari sampel teks atau ucapan yang diberikan. Item dapat berupa fonem, suku kata, huruf, kata -kata atau pasangan basa sesuai dengan aplikasi. n-grams biasanya dikumpulkan dari teks atau corpus ucapan. Ketika item adalah kata-kata, n-grams juga dapat disebut herpes zoster (dari wikipedia).Natural language processing (NLP) adalah subbidang linguistik, ilmu komputer, dan kecerdasan buatan yang berkaitan dengan interaksi antara komputer dan bahasa manusia, khususnya bagaimana memprogram komputer untuk memproses dan menganalisis sejumlah besar data bahasa alami (dari Wikipedia).Part-of-Speech (PoS) tagging adalah tugas memberi label setiap kata dalam urutan kata dengan tag yang menunjukkan kategori sintaksis leksikal apa yang diasumsikan dalam urutan yang diberikan (dari wikipedia).Phonetic transcription - Representasi visual dari suara ucapan (atau telepon) dengan menggunakan simbol. Jenis transkripsi fonetik yang paling umum menggunakan alfabet fonetik, seperti alfabet fonetik internasional (dari Wikipedia).postings - Indeks terpisah yang mencatat yang documents vocabulary yang terjadi. Dalam index posisi, posting juga mencatat posisi setiap term dalam text untuk membuat index terbalik posisi.postings list - Catatan posisi term dalam document . Posisi suatu term mengacu pada indeks term dalam array yang berisi semua terms dalam text . Dalam index yang dikategorikan, postings lists mencatat posisi setiap term dalam text A zone .stem or stemmer - Stemming adalah proses mengurangi kata -kata yang dipengaruhi (atau kadang -kadang diturunkan) ke kata batang, dasar atau root bentuk (umumnya bentuk kata tertulis) (dari wikipedia).stopwords - Kata -kata umum dalam bahasa yang dikecualikan dari pengindeksan.term - kata atau frasa yang diindeks dari corpus . term ini mungkin berbeda dari kata aktual yang digunakan dalam korpus tergantung pada tokenizer yang digunakan.term filter - Filter Ketentuan yang Tidak Diinginkan dari Kumpulan Ketentuan (mis. Stopwords), memecah istilah majemuk menjadi istilah yang terpisah dan / atau memanipulasi istilah dengan memohon stemmer dan / atau lemmatizer .term expansion - Menemukan istilah dengan ejaan yang sama (misalnya koreksi ejaan) atau sinonim untuk suatu istilah.term frequency (Ft) - Frekuensi suatu term dalam indeks atau objek yang diindeks.term position - Indeks berbasis nol dari suatu term dalam array terms yang dipesan yang tokenized dari corpus .text - Konten yang dapat diindeks dari suatu document .token - Representasi term dalam sumber teks yang dikembalikan oleh tokenizer . Token dapat mencakup informasi tentang term seperti posisinya ( term position ) dalam teks atau frekuensi kejadian ( term frequency ).token filter - Mengembalikan subset tokens dari output tokenizer.tokenizer - Fungsi yang mengembalikan kumpulan token dari text , setelah menerapkan filter karakter, filter term , stemmer dan / atau lemmatizer.vocabulary - Kumpulan terms yang diindeks dari corpus .zone - Lapangan atau zona dokumen yang terjadi istilah, digunakan untuk indeks parametrik atau di mana penilaian dan peringkat hasil pencarian mengaitkan skor yang lebih tinggi dengan dokumen yang berisi istilah di zona tertentu (misalnya judulnya alih -alih tubuh dokumen).( kembali ke atas )
( kembali ke atas )
Jika Anda menemukan bug, silakan isi masalah.
Proyek ini adalah paket pendukung untuk proyek pendapatan yang memiliki prioritas panggilan sumber daya, jadi harap bersabar jika kami tidak segera menanggapi masalah atau menarik permintaan.