
Passez à la section:
Le package text_analysis fournit des méthodes pour tokensize de texte, calculer les scores de lecture pour un document et évaluer la similitude des terms . Il est destiné à être utilisé dans le traitement du langage naturel ( NLP ) dans le cadre d'un système de recherche d'informations.
Il est divisé en trois bibliothèques:
Reportez-vous aux références pour en savoir plus sur les systèmes de récupération de l'information et la théorie derrière cette bibliothèque.
La tokenisation comprend les étapes suivantes:
term splitter divise le texte sur une liste de termes dans des endroits appropriés comme l'espace blanc et la ponctuation à la mi-sens;character filter manipule les termes avant la tokenisation (par exemple, modifiant le cas et / ou supprimer des caractères non mot);term filter manipule les termes en divisant des termes composés ou en dyphénéation ou en appliquant des tiges et une lemmatisation. Le termFilter peut également filtrer stopwords ; ettokenizer convertit les termes en une collection de tokens qui contiennent des versions tokenisées du terme et un pointeur vers la position du terme tokenisé (n-gram) dans le texte source. Les jetons sont générés pour les mots clés, termes et / ou n-grammes, selon le TokenizingStrategy sélectionné. La gamme N-gram souhaitée peut être transmise lors du tokenisage du texte ou du document. 
Le TextDocument énumère les paragraphes , les phrases , les termes et les jetons d'un document de texte et calcule les mesures de lisibilité:
Flesch reading ease score , une mesure de remaniement calculée à partir de la longueur de la phrase et de la longueur des mots sur une échelle de 100 points; etFlesch-Kincaid grade level , une mesure de remise en liberté relative au niveau scolaire américain. Le TextDocument comprend également un graphique de co-occurrence généré à l'aide de l'algorithme Rapid Keyword Extraction (RAKE), à partir desquels les mots clés (et les scores de mots clés) peuvent être obtenus. Les mesures suivantes de la similitude term sont fournies sous forme d'extensions sur la chaîne:
Damerau–Levenshtein distance est le nombre minimum de modifications à caractéristiques (transpositions, insertions, suppressions ou substitutions) nécessaires pour changer un term en un autre;edit similarity est une mesure normalisée de Damerau–Levenshtein distance sur une échelle de 0,0 à 1,0, calculée en divisant la différence entre la distance d'édition maximale (somme de la longueur des deux termes) et la editDistance calculée, par la distance d'édition maximale;length distance renvoie la valeur absolue de la différence de longueur entre deux termes;character similarity renvoie la similitude de deux termes en ce qui concerne la collection de caractères uniques dans chaque terme sur une échelle de 0,0 à 1,0;length similarity renvoie la similitude de longueur entre deux termes sur une échelle de 0,0 à 1,0 sur une échelle logarithmique (1 - le journal du rapport des longueurs de terme); etJaccard similarity mesure la similitude entre les ensembles d'échantillons finis et est défini comme la taille de l'intersection divisée par la taille de l'union des ensembles d'échantillons. La classe d'imilier des termes énumère toutes les mesures de similitude de deux termes et fournit la propriété TermSimilarity.similarity .
La classe Inimilées Termes fournit également une fonction pour diviser les termes en k-grams , utilisés dans les algorithmes de correction de sorts.
( retour en haut )
Dans le pubspec.yaml de votre projet Flutter, ajoutez la dépendance suivante:
dependencies :
text_analysis : <latest version> Dans votre fichier de code, ajoutez l'importation de la bibliothèque Text_analysis. Cela importera également la classe Porter2Stemmer à partir du package porter_2_stemmer .
// import the core classes
import 'package:text_analysis/text_analysis.dart' ;
Pour utiliser les extensions et / ou les définitions de type du package, ajoutez également l'une des importations suivantes:
// 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' ;
La tokenisation anglaise de base peut être effectuée en utilisant une instance de const statique 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 ));Pour analyser le texte ou un document, hydratez un TextDocument pour obtenir les statistiques du texte et les scores de remise en compte:
// 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" Pour comparer les termes, appelez l'extension souhaitée sur le term , ou la méthode statique de la classe Inimilées Termes:
// 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]
//
Veuillez consulter les exemples pour plus de détails.
( retour en haut )
Les interfaces clés de la bibliothèque text_analysis sont brièvement décrites dans cette section. Veuillez vous référer à la documentation pour plus de détails.
L'API contient une bonne quantité de plaque de chaudière, mais nous visons à rendre le code aussi lisible, extensible et réutilisable que possible:
interface > implementation mixin > base-class > implementation class pattern :interface est une classe abstraite qui expose les champs et les méthodes mais ne contient aucun code d'implémentation. L' interface peut exposer un constructeur d'usine qui renvoie une instance implementation class ;implementation mixin implémente les méthodes de classe interface , mais pas les champs d'entrée;base-class est une classe abstraite avec le implementation mixin et expose un constructeur de const génératif par défaut et sans nom pour les sous-classes. L'intention est que implementation classes étendent la base class , en déplaçant les champs d'entrée d' interface avec les propriétés finales transmises via un constructeur génératif constant.( retour en haut )
La classe d'immeuble de termes fournit les mesures de similitude suivantes entre deux termes:
characterSimilarity renvoient la similitude de deux termes en ce qui concerne la collection de caractères uniques dans chaque terme sur une échelle de 0,0 à 1,0;editDistance renvoie la Damerau–Levenshtein distance , le nombre minimum de modifications à personnage monom (transpositions, insertions, suppressions ou substitutions) requises pour changer un term en un autre;editSimilarity renvoie une mesure normalisée de Damerau–Levenshtein distance sur une échelle de 0,0 à 1,0, calculée en divisant la différence entre la distance d'édition maximale (somme de la longueur des deux termes) et la editDistance calculée, par la distance maximale d'édition;lengthDistance renvoie la valeur absolue de la différence de longueur entre deux termes;lengthSimilarity renvoie la similitude de longueur entre deux termes sur une échelle de 0,0 à 1,0 sur une échelle logarithmique (1 - le journal du rapport des longueurs de terme);jaccardSimilarity Renvoie l'indice de similitude Jaccard de deux termes.Pour comparer un terme avec une collection d'autres termes, les méthodes statiques suivantes sont également fournies:
editDistanceMap renvoie un hashmap de terms à leurs editSimilarity avec un terme;editSimilarityMap renvoie un hashmap de terms à leurs editSimilarity avec un terme;lengthSimilarityMap renvoie un hashmap de terms à leur lengthSimilarity avec un terme;jaccardSimilarityMap renvoie un hashmap de terms à l'indice de similitude JACCARD avec un terme;termSimilarityMap Renvoie un hashmap de terms à Termessimilarity avec un terme;termSimilarities , editSimilarities , characterSimilarities , les similitudes, lengthSimilarities et jaccardSimilarities renvoient tous une liste des valeurs [similitilles deindex] pour les termes candidats; etmatches renvoient les meilleures correspondances des terms pour un terme, dans l'ordre décroissant de la similitude du terme (meilleur match en premier).Les comparaisons de chaînes ne sont pas sensibles à la casse.
La classe TextSimilarity repose sur des méthodes d'extension qui peuvent être importées de la bibliothèque d'extensions.
( retour en haut )
L'interface Textanalyzer expose les propriétés et méthodes spécifiques à la langue utilisée dans l'analyse de texte:
Le LatinlanguageAnalyzer implémente les méthodes d'interface TextAnalyzer pour les langues qui utilisent le jeu d'alphabet / caractères latin / romain.
La mise en œuvre anglaise de Textanalyzer est incluse dans cette bibliothèque et se mélange dans le LatinLanguageAnalyzerMixin .
( retour en haut )
Le modèle d'objet TextDocument énumère les paragraphes , les phrases , les termes , les mots clés d' un document de texte, le nombre de syllabes et les jetons et fournit des fonctions qui renvoient les mesures d'analyse de texte:
Le textDocumentMixin implémente le moyen devente en moyenne, AverageSyLlowpeCount, WordCount, FleschReadingEsCore et FleschkincAidDelelevel.
Un TextDocument peut être hydraté avec le constructeur d'usine sans nom ou en utilisant les méthodes statiques analysées ou analysées. Alternativement, étendez la classe TextDocumentBase.
( retour en haut )
Les définitions suivantes sont utilisées tout au long de la documentation:
corpus - La collecte de documents pour lesquels un index est maintenu.cosine similarity - similitude de deux vecteurs mesurés comme le cosinus de l'angle entre eux, c'est-à-dire le produit DOT des vecteurs divisés par le produit de leurs longueurs euclidiens (de Wikipedia).character filter - filtre les caractères du texte en préparation de la tokenisation.Damerau–Levenshtein distance - Une métrique pour mesurer la edit distance entre deux terms en comptant le nombre minimum d'opérations (insertions, suppressions ou substitutions d'un seul caractère, ou transposition de deux caractères adjacents) requis pour changer un term en l'autre (de Wikipedia).dictionary (in an index) - Un hachage de terms ( vocabulary ) à la fréquence de la survenue dans les documents corpus .document - Un enregistrement dans le corpus , qui a un identifiant unique ( docId ) dans la clé principale du corpus et qui contient un ou plusieurs champs de texte indexés.document frequency (dFt) - Le nombre de documents dans le corpus qui contiennent un terme.edit distance - Une mesure de la façon dont deux termes sont différents en comptant le nombre minimum d'opérations nécessaires pour transformer une chaîne en l'autre (de Wikipedia).etymology - L'étude de l'histoire de la forme des mots et, par extension, l'origine et l'évolution de leur signification sémantique à travers le temps (de Wikipedia).Flesch reading ease score - Une mesure de remaniement calculée à partir de la longueur de la phrase et de la longueur du mot sur une échelle de 100 points. Plus le score est élevé, plus il est facile de comprendre le document (de Wikipedia).Flesch-Kincaid grade level - une mesure de remise en compte par rapport au niveau scolaire américain. Il est également calculé à partir de la longueur de la phrase et de la longueur du mot (à partir de Wikipedia).IETF language tag - un code ou une balise standardisée qui est utilisé pour identifier les langues humaines sur Internet. (de Wikepedia).index - Un index inversé utilisé pour rechercher des références document du corpus par rapport à un vocabulary des terms .index-elimination - Sélection d'un sous-ensemble des entrées dans un index où le term se trouve dans la collection de terms dans une phrase de recherche.inverse document frequency (iDft) - Une mesure normalisée de la rareté d'un term dans le corpus. Il est défini comme log (N / dft) , où n est le nombre total de termes dans l'index. L' iDft d'un terme rare est élevé, tandis que l' iDft d'un terme fréquent est probablement faible.Jaccard index mesure la similitude entre les ensembles d'échantillons finis et est défini comme la taille de l'intersection divisée par la taille de l'union des ensembles d'échantillons (de Wikipedia).Map<String, dynamic> est un acronyme pour "Java Script Object Notation" , un format commun pour les données persistantes.k-gram - Une séquence de (n'importe quel) k caractères consécutifs d'un term . Un k-gram peut commencer par "$", indiquant le début du terme, et se terminer par "$", dénotant la fin du trimestre. Les 3 grammes pour "château" sont { lemma or lemmatizer - la lemmatisation (ou la lemmatisation) en linguistique est le processus de regroupement les formes infléchies d'un mot afin qu'elles puissent être analysées en tant qu'élément, identifié par le lemme du mot, ou la forme du dictionnaire (à partir de wikipedia).n-gram (parfois aussi appelé Q-gram) est une séquence contigu de n éléments d'un échantillon donné de texte ou de discours. Les éléments peuvent être des phonèmes, des syllabes, des lettres, des mots ou des paires de bases selon l'application. Les n-grams sont généralement collectés dans un corpus de texte ou de discours. Lorsque les éléments sont des mots, n-grams peuvent également être appelés zona (de Wikipedia).Natural language processing (NLP) est un sous-champ de linguistique, d'informatique et d'intelligence artificielle concernant les interactions entre les ordinateurs et le langage humain, en particulier comment programmer les ordinateurs pour traiter et analyser de grandes quantités de données sur le langage naturel (de Wikipedia).Part-of-Speech (PoS) tagging est la tâche de marquer chaque mot dans une séquence de mots avec une balise indiquant quelle catégorie syntaxique lexicale il suppose dans la séquence donnée (de Wikipedia).Phonetic transcription - La représentation visuelle des sons de la parole (ou téléphones) au moyen de symboles. Le type de transcription phonétique le plus courant utilise un alphabet phonétique, comme l'alphabet phonétique international (de Wikipedia).postings - Un index distinct qui enregistre qui documents le vocabulary se produit. Dans un index positionnel, les publications enregistrent également les positions de chaque term dans le text pour créer un index inversé positionnel.postings list - Un enregistrement des positions d'un term dans un document . Une position d'un term fait référence à l'indice du term dans un tableau qui contient tous les terms du text . Dans un index zoné, les postings lists répertorient les positions de chaque term dans le text une zone .stem or stemmer - La tige est le processus de réduction des mots infléchis (ou parfois dérivés) de leur forme de mot, de base ou de forme racine (généralement une forme de mot écrite) (de Wikipedia).stopwords - MOTS COMMURS DANS UN LANGUE EXCLUSÉ DE L'INDEXE.term - Un mot ou une phrase qui est indexé à partir du corpus . Le term peut différer du mot réel utilisé dans le corpus en fonction du tokenizer utilisé.term filter - Filtre les termes indésirables à partir d'une collection de termes (par exemple les mots d'arrêt), divise les termes composés en termes distincts et / ou manipule les termes en invoquant une stemmer et / ou lemmatizer .term expansion - Trouver des termes avec une orthographe similaire (par exemple, une correction d'orthographe) ou des synonymes pour un terme.term frequency (Ft) - La fréquence d'un term dans un index ou un objet indexé.term position - L'indice zéro d'un term dans un tableau ordonné de terms tokenisé à partir du corpus .text - Le contenu indexable d'un document .token - Représentation d'un term dans une source de texte renvoyée par un tokenizer . Le jeton peut inclure des informations sur le term tels que sa position (s) ( term position ) dans le texte ou la fréquence d'occurrence ( term frequency ).token filter - Renvoie un sous-ensemble de tokens à partir de la sortie de tokenzer.tokenizer - Une fonction qui renvoie une collection de token à partir du text , après avoir appliqué un filtre de caractères, un filtre term , une tige et / ou un lemmatizer.vocabulary - La collection de terms indexés à partir du corpus .zone - Le champ ou la zone d'un document dans lequel un terme se produit, utilisé pour les index paramétriques ou lorsque la notation et le classement des résultats de recherche attribuent un score plus élevé aux documents contenant un terme dans une zone spécifique (par exemple, le titre plutôt que le corps d'un document).( retour en haut )
( retour en haut )
Si vous trouvez un bug, veuillez remplir un problème.
Ce projet est un package de soutien pour un projet de revenus qui a un appel prioritaire sur les ressources, alors soyez patient si nous ne répondons pas immédiatement aux problèmes ou aux demandes de traction.