
تخطي إلى القسم:
توفر حزمة text_analysis طرقًا لرمز النص ، وحساب درجات القراءة لمستند وتقييم تشابه terms . يهدف إلى استخدامه في معالجة اللغة الطبيعية ( NLP ) كجزء من نظام استرجاع المعلومات.
ينقسم إلى ثلاث مكتبات:
ارجع إلى المراجع لمعرفة المزيد حول أنظمة استرجاع المعلومات والنظرية الكامنة وراء هذه المكتبة.
يشتمل الرمز المميز على الخطوات التالية:
term splitter بتقسيم النص إلى قائمة من المصطلحات في الأماكن المناسبة مثل الفضاء الأبيض وعلامات الترقيم في منتصف الجملة ؛character filter المصطلحات قبل الرمز المميز (على سبيل المثال تغيير الحالة و / أو إزالة الأحرف غير الكلمة) ؛term filter المصطلحات عن طريق تقسيم المصطلحات المركب أو الواصلة أو تطبيق التنقيب والترويج. يمكن لـ termFilter أيضًا تصفية stopwords ؛ وtokenizer بتحويل المصطلحات إلى مجموعة من tokens التي تحتوي على إصدارات رمزية من المصطلح ومؤشر إلى موضع المصطلح المميز (N-Gram) في النص المصدر. يتم إنشاء الرموز المميزة للكلمات الرئيسية والشروط و/أو n-grams ، اعتمادًا على TokenizingStrategy المحدد. يمكن تمرير نطاق N-Gram المطلوب عند تميز النص أو المستند. 
تعدد TextDocument فقرات وجمل وشروط ورموز ومربعات من مستند وثيقة نصي:
Flesch reading ease score ، وهو مقياس لقراءة محسوبة من طول الجملة وطول الكلمة على مقياس 100 نقطة ؛ وFlesch-Kincaid grade level ، وهو مقياس لقراءة بالنسبة إلى مستوى الصف المدرسي الأمريكي. يتضمن TextDocument أيضًا رسمًا بيانيًا مشتركًا تم إنشاؤه باستخدام خوارزمية استخراج الكلمات الرئيسية السريعة (Rake) ، والتي يمكن الحصول عليها من الكلمات الرئيسية (ودرجات الكلمات الرئيسية). يتم توفير التدابير التالية من التشابه term كملحقات على السلسلة:
Damerau–Levenshtein distance هي الحد الأدنى لعدد تعديلات الأحرف الواحدة (عمليات التحويل أو الإدراج أو الحذف أو البدائل) المطلوبة لتغيير term إلى آخر ؛edit similarity هو مقياس طبيعي Damerau–Levenshtein distance على مقياس من 0.0 إلى 1.0 ، محسوبًا بتقسيم الفرق بين المسافة القصوى للتحرير (مجموع طول المصطلحين) editDistance المحسوب ، عن طريق المسافة القصوى ؛length distance القيمة المطلقة للفرق في الطول بين فترتين ؛character similarity التشابه عن المصطلحين من حيث صلته بمجموعة من الشخصيات الفريدة في كل مصطلح على مقياس من 0.0 إلى 1.0 ؛length similarity التشابه في الطول بين مصطلحين على مقياس من 0.0 إلى 1.0 على مقياس السجل (1 - سجل نسبة أطوال المصطلح) ؛ وJaccard similarity التشابه بين مجموعات العينات المحدودة ، ويتم تعريفه على أنه حجم التقاطع مقسوما على حجم اتحاد مجموعات العينة. تعدد فئة المصطلحات جميع مقاييس التشابه لمصطلحين وتوفر خاصية TermSimilarity.similarity التي تجمع بين التدابير الأربعة في قيمة واحدة.
توفر فئة المصطلحات أيضًا وظيفة لتقسيم المصطلحات إلى k-grams ، وتستخدم في خوارزميات تصحيح الإملاء.
( العودة إلى الأعلى )
في pubspec.yaml من مشروع Flutter الخاص بك ، أضف التبعية التالية:
dependencies :
text_analysis : <latest version> في ملف الرمز الخاص بك ، أضف استيراد مكتبة Text_analysis. سيؤدي ذلك أيضًا إلى استيراد فئة Porter2Stemmer من حزمة porter_2_stemmer .
// import the core classes
import 'package:text_analysis/text_analysis.dart' ;
لاستخدام امتدادات الحزمة و/أو تعريفات النوع ، أضف أيضًا أي من الواردات التالية:
// 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' ;
يمكن تنفيذ الرمز المميز للغة الإنجليزية الأساسية باستخدام مثيل const ثابت 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 ));لتحليل النص أو المستند ، ترطيب textDocument للحصول على إحصائيات النص وعشرات المستعمرة:
// 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" لمقارنة المصطلحات ، اتصل بالتمديد المطلوب على term ، أو الطريقة الثابتة من فئة المصطلحات:
// 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]
//
يرجى الاطلاع على الأمثلة لمزيد من التفاصيل.
( العودة إلى الأعلى )
يتم وصف الواجهات الرئيسية لمكتبة text_analysis بإيجاز في هذا القسم. يرجى الرجوع إلى الوثائق للحصول على التفاصيل.
تحتوي واجهة برمجة التطبيقات على قدر لا بأس به من لوحة الغلاية ، لكننا نهدف إلى جعل الكود قابلاً للقراءة وقابلة للتمديد وقابلة لإعادة الاستخدام قدر الإمكان:
interface > implementation mixin > base-class > implementation class pattern :interface هي فئة مجردة تكشف الحقول والأساليب ولكنها لا تحتوي على رمز تنفيذ. قد تعرض interface مُنشئ المصنع الذي يعيد مثيل implementation class ؛implementation mixin بتنفيذ طرق فئة interface ، ولكن ليس حقول الإدخال ؛base-class هي فئة مجردة مع implementation mixin وتكشف عن مُنشئ توليدي افتراضي لم يكشف عن اسمه للفئات الفرعية. القصد من ذلك هو أن implementation classes تمدد base class ، مما يؤدي إلى تجاوز حقول إدخال interface مع الخصائص النهائية التي تم تمريرها عبر مُنشئ توليدي.( العودة إلى الأعلى )
توفر فئة المصطلحات التدابير التالية للتشابه بين فترتين:
characterSimilarity التشابه عن فترتين من حيث صلته بمجموعة من الشخصيات الفريدة في كل مصطلح على مقياس من 0.0 إلى 1.0 ؛editDistance Damerau–Levenshtein distance ، وهو الحد الأدنى لعدد تعديلات الأحرف الواحدة (عمليات التحويل أو الإدراج أو الحذف أو البدائل) المطلوبة لتغيير term إلى آخر ؛editSimilarity لإرجاع مقياس طبيعي Damerau–Levenshtein distance على مقياس من 0.0 إلى 1.0 ، محسوبة عن طريق تقسيم الفرق بين أقصى مسافة تحرير (مجموع طول المصطلحين) editDistance المحسوب ، عن طريق أقصى مسافة التحرير ؛lengthDistance يعيد القيمة المطلقة للفرق في الطول بين فترتين ؛lengthSimilarity إرجاع التشابه في الطول بين مصطلحين على مقياس من 0.0 إلى 1.0 على مقياس السجل (1 - سجل نسبة أطوال المصطلح) ؛jaccardSimilarity يعيد مؤشر تشابه jaccard من فترتين.لمقارنة مصطلح واحد مع مجموعة من المصطلحات الأخرى ، يتم توفير الأساليب الثابتة التالية أيضًا:
editDistanceMap يعيد hashmap من terms إلى editSimilarity مع مصطلح ؛editSimilarityMap يعيد hashmap من terms إلى editSimilarity مع مصطلح ؛lengthSimilarityMap map تُرجع hashmap من terms إلى lengthSimilarity مع مصطلح ؛jaccardSimilarityMap يعيد hashmap من terms إلى مؤشر تشابه jaccard مع مصطلح ؛termSimilarityMap A hashmap من terms إلى مصطلح مع مصطلح ؛termSimilarities ، editSimilarities ، characterSimilarities ، lengthSimilarities ، jaccardSimilarities جميعها تُرجع قائمة من قيم [التشابه] لمصطلحات المرشحين ؛ وmatches أفضل المباريات من terms المصطلح ، بترتيب تنازلي للتشابه في المدة (أفضل مطابقة أولاً).مقارنات السلسلة ليست حساسة للحالة.
تعتمد فئة TextSimiRiality على أساليب التمديد التي يمكن استيرادها من مكتبة الامتدادات.
( العودة إلى الأعلى )
تكشف واجهة TextAnalyzer عن الخواص والأساليب الخاصة باللغة المستخدمة في تحليل النص:
ينفذ اللاتينلانغانغاناليزر طرق واجهة المحاذاة TextAnalyzer للغات التي تستخدم مجموعة الحروف/الأحرف اللاتينية/الرومانية.
يتم تضمين التنفيذ الإنجليزي للمذكرات النصية في هذه المكتبة ويختلط في LatinLanguageAnalyzerMixin .
( العودة إلى الأعلى )
يعدد نموذج كائن TextDocument فقرات وجمل وشروط والكلمات الرئيسية والكلمات الرئيسية والكلمات الرئيسية والرموز المقطعية والرموز الخاصة بمستند نصي وتوفر وظائف تعود إلى مقاييس تحليل النص:
يقوم TextDocumentMixin بتنفيذ متوسط متوسط الأساليب ، و verageyllableCount ، و WordCount ، و fleschreadeasescore ، و fleschkincaidgreadelevel.
يمكن ترطيب حجة TextDocument مع مُنشئ المصنع لم يكشف عن اسمه أو باستخدام طرق تحليل أو تحليل. بدلاً من ذلك ، تمديد فئة TextDocumentBase.
( العودة إلى الأعلى )
يتم استخدام التعريفات التالية خلال الوثائق:
corpus - مجموعة documents التي يتم الحفاظ على index .cosine similarity - تشابه اثنين من المتجهات المقاسة كجيب التمام للزاوية بينهما ، أي المنتج الناقص للناقلات مقسومًا على منتج أطوالها الإقليدية (من ويكيبيديا).character filter - مرشحات الأحرف من النص استعدادًا للرمز المميز.Damerau–Levenshtein distance - مقياس لقياس edit distance بين terms عن طريق حساب الحد الأدنى لعدد العمليات (الإدراج أو الحذف أو بدائل حرف واحد ، أو نقل حرفيتين مجاورتين) اللازمة لتغيير term واحد إلى الآخر (من ويكيبيديا).dictionary (in an index) - تجزئة terms ( vocabulary ) إلى تواتر الحدوث في مستندات corpus .document - سجل في corpus ، يحتوي على معرف فريد ( docId ) في المفتاح الأساسي corpus ويحتوي على حقول نصية أو أكثر يتم فهرستها.document frequency (dFt) - عدد المستندات في corpus التي تحتوي على مصطلح.edit distance - مقياس لمدى اختلاف المصطلحين عن طريق حساب الحد الأدنى لعدد العمليات المطلوبة لتحويل سلسلة واحدة إلى أخرى (من ويكيبيديا).etymology - دراسة تاريخ شكل الكلمات ، وبالتالي ، أصل وتطور معناها الدلالي عبر الزمن (من ويكيبيديا).Flesch reading ease score - مقياس لقراءة محسوبة من طول الجملة وطول الكلمة على مقياس 100 نقطة. كلما ارتفعت النتيجة ، كان من الأسهل فهم المستند (من ويكيبيديا).Flesch-Kincaid grade level - مقياس القراءة بالنسبة إلى مستوى الصف المدرسي الأمريكي. يتم حسابه أيضًا من طول الجملة وطول الكلمة (من ويكيبيديا).IETF language tag - رمز أو علامة موحدة تستخدم لتحديد اللغات البشرية في الإنترنت. (من Wikepedia).index - فهرس مقلوب يستخدم للبحث عن مراجع document من corpus مقابل vocabulary terms .index-elimination - اختيار مجموعة فرعية من الإدخالات في فهرس حيث يكون term في مجموعة terms في عبارة البحث.inverse document frequency (iDft) - مقياس طبيعي لمدى ندرة term في المجموعة. يتم تعريفه على أنه log (N / dft) ، حيث N هو إجمالي عدد المصطلحات في الفهرس. إن iDft من مصطلح نادر مرتفع ، في حين من المرجح أن تكون iDft لمصطلح متكرر منخفضًا.Jaccard index التشابه بين مجموعات العينة المحدودة ، ويتم تعريفه على أنه حجم التقاطع مقسومًا على حجم اتحاد مجموعات العينة (من ويكيبيديا).Map<String, dynamic> هو اختصار لـ "Java Script Object Notation" ، وهو تنسيق شائع لاستمرار البيانات.k-gram - سلسلة من (أي) k شخصيات متتالية من term . يمكن أن تبدأ k-gram بـ "$" ، مما يدل على بداية المصطلح ، وينتهي بـ "$" ، مما يدل على نهاية المصطلح. 3 غرامات لـ "القلعة" هي { lemma or lemmatizer - الإرهاق (أو الإرهاق) في اللغويات هي عملية تجميع الأشكال المشتركة لكلمة واحدة حتى يمكن تحليلها كبند واحد ، تم تحديده بواسطة كلمة Lemma ، أو شكل القاموس (من Wikipedia).n-gram (أحيانًا يسمى أيضًا Q-Gram) هو تسلسل متجاور من العناصر n من عينة معينة من النص أو الكلام. يمكن أن تكون العناصر صوتية أو مقاطع أو رسائل أو كلمات أو أزواج أساسية وفقًا للتطبيق. عادة ما يتم جمع n-grams من نص أو corpus خطاب. عندما تكون العناصر عبارة عن كلمات ، قد تسمى n-grams أيضًا القوباء المنطقية (من ويكيبيديا).Natural language processing (NLP) هي حقل فرعي من اللغويات وعلوم الكمبيوتر والذكاء الاصطناعي المعني بالتفاعلات بين أجهزة الكمبيوتر واللغة البشرية ، ولا سيما كيفية برمجة أجهزة الكمبيوتر لمعالجة وتحليل كميات كبيرة من بيانات اللغة الطبيعية (من ويكيبيديا).Part-of-Speech (PoS) tagging هي مهمة وضع علامة على كل كلمة في سلسلة من الكلمات مع علامة تشير إلى فئة النحوية المعجمية التي تفترضها في التسلسل المعطى (من ويكيبيديا).Phonetic transcription - التمثيل المرئي لأصوات الكلام (أو الهواتف) عن طريق الرموز. يستخدم النوع الأكثر شيوعًا من النسخ الصوتي الأبجدية الصوتية ، مثل الأبجدية الصوتية الدولية (من ويكيبيديا).postings - فهرس منفصل يسجل الذي documents vocabulary في. في index موضعي ، تسجل المنشورات أيضًا مواضع كل term في text لإنشاء index مقلوب موضعي.postings list - سجل لمواقع term في document . يشير موضع term إلى فهرس term في صفيف يحتوي على جميع terms في text . في index مخصص ، تسجل postings lists مواقف كل term في text zone .stem or stemmer - نماذج هي عملية تقليل الكلمات المضمنة (أو المشتقة في بعض الأحيان) إلى كلمته ساق أو قاعدة أو جذر (بشكل عام نموذج كلمة مكتوبة) (من ويكيبيديا).stopwords - الكلمات الشائعة بلغة مستبعدة من الفهرسة.term - كلمة أو عبارة مفهرسة من corpus . قد يختلف term عن الكلمة الفعلية المستخدمة في المجموعة اعتمادًا على tokenizer المستخدم.term filter - مرشحات المصطلحات غير المرغوب فيها من مجموعة من المصطلحات (مثل الكلمات المتوقفة) ، تحطم المصطلحات المركبة إلى مصطلحات منفصلة و / أو تتلاعب بمصطلحات من خلال استدعاء stemmer و / أو lemmatizer .term expansion - إيجاد مصطلحات مع تهجئة مماثلة (على سبيل المثال تصحيح الإملاء) أو المرادفات لمصطلح.term frequency (Ft) - تواتر term في كائن فهرس أو مفهرس.term position - الفهرس القائم على الصفر term في مجموعة مرتبة من terms المميزة من corpus .text - المحتوى القابل للفهرسة document .token - تمثيل term في مصدر نص تم إرجاعه بواسطة tokenizer . قد يتضمن الرمز المميز معلومات حول term مثل موقفه (موضعه) ( term position ) في النص أو تواتر الحدوث ( term frequency ).token filter - إرجاع مجموعة فرعية من tokens من إخراج Tokenizer.tokenizer - وظيفة تُرجع مجموعة من token من text ، بعد تطبيق مرشح الأحرف ، مرشح term ، الجذعية و / أو الضعف.vocabulary - مجموعة terms المفهرسة من corpus .zone - حقل أو منطقة مستند يحدث فيه مصطلح ، يستخدم في فهارس حدودي أو حيث ينسب تسجيل وترتيب نتائج البحث درجة أعلى إلى المستندات التي تحتوي على مصطلح في منطقة معينة (على سبيل المثال ، فإن العنوان بدلاً من ذلك هو جسم المستند).( العودة إلى الأعلى )
( العودة إلى الأعلى )
إذا وجدت خطأ ، يرجى ملء مشكلة.
هذا المشروع عبارة عن حزمة داعمة لمشروع الإيرادات الذي له استدعاء الموارد على الأولوية ، لذا يرجى التحلي بالصبر إذا لم نستجيب على الفور للمشكلات أو سحب الطلبات.