استخراج کلمات از متون فارسی

وابستگی‌ها

SCICT.PersianTools.dll

مثال

استخراج کلمات فارسی از یک رشته یا متن، از طریق فراخوانی تابع ExtractPersianWords از کلاس StringUtil قابل انجام است. هم‌چنین با فراخوانی تابع ExtractPersianWordsStandardized نویسه‌های کلمات استخراج شده اصلاح و یکسان‌سازی می‌شوند. قطعه برنامه‌ی زیر نمونه‌ای از کاربرد تابع ExtractPersianWords را نشان می‌دهد:

Extracting Persian Words
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
string str = "دیوان اشعار او شامل غزلیات، چند قصیده، چند مثنوی، قطعات و رباعیات است.";

string[] words = SCICT.NLP.Utility.StringUtil.ExtractPersianWords(str);
StringBuilder result = new StringBuilder();
for (int i = 0; i < words.Length; i++)
{
    result.AppendLine(words[i]);
}

//result:
//دیوان
//اشعار
//او
//شامل
//غزلیات
//چند
//قصیده
//چند
//مثنوی
//قطعات
//و
//رباعیات
//است

علاوه بر توابع فوق از کلاس StringUtil، کلاس PersianWordTokenizer گزینه‌های بیشتری پیش روی برنامه‌نویس قرار می‌دهد. به عنوان نمونه تابع PersianWordTokenizer.Tokenize این امکان را به برنامه‌نویس می‌دهد که نویسه‌های جداکننده‌ی کلمات را (اعم از فاصله یا علائم نگارشی) حفظ کند، به طوری که با به هم چسباندن اجزای بدست آمده بتوان جمله‌ی اوّلیه را ساخت:

Extracting Persian Words while preserving delimiters
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
string str = "دیوان اشعار او شامل غزلیات، چند قصیده، چند مثنوی، قطعات و رباعیات است.";

List<string> words = PersianWordTokenizer.Tokenize(str, false);
StringBuilder result = new StringBuilder();
for (int i = 0; i < words.Count; i++)
{
    result.AppendLine(words[i]);
}

//result:
//دیوان
// 
//اشعار
// 
//او
// 
//شامل
// 
//غزلیات
//،
// 
//چند
// 
//قصیده
//،
// 
//چند
// 
//مثنوی
//،
// 
//قطعات
// 
//و
// 
//رباعیات
// 
//است
//.

هم‌چنین، این تابع علاوه بر قابلیت‌های فوق این امکان را می‌دهد، که کلمات برگردانده شده، اصلاح و یکسان‌سازی شوند:

Extracting Persian Words while preserving delimiters and refining results
 1
 2
 3
...
List<string> words = PersianWordTokenizer.Tokenize(str, false, true);
...