PDA

View Full Version : سوال: تعداد تکرار هر لغت در متن



baharak4
یک شنبه 23 فروردین 1394, 19:17 عصر
سلام
چطوری می تونم تعداد تکرارکلمات یک متن را بشمارم؟ کلمات کلی نه ، مثلا بگم در متن چندبار لغت live تکرار شده؟ چندبار لغت Simple تکرار شده و ...؟ نمیتونم جوری تعریف کنم که لغت و ذکر کنم. میخوام فایل متنی و به برنامه بدم و پس از آن برنامه تعداد تکرار هر لغت را بهم نمایش بده که TF را بدست آورم
اگر دوستان در مورد TF اطلاعی دارند ممنون میشم کمک کنند. در TF تعداد تکرار یک لغت را تقسیم بر تعداد کل لغات می کنیم و برای هر کلمه TF را بدست می آوریم. (term frequency)

Mofid.m
یک شنبه 23 فروردین 1394, 19:23 عصر
درود به شما
شما باید یه آرایه از کلمات رو بدست بیارین و لغت رو توی اون آرایه جستجو کنید.
اینطوری میشه بدست آورد.
از تابع split میتونی استفاده کنی.

baharak4
یک شنبه 23 فروردین 1394, 20:17 عصر
درود به شما
شما باید یه آرایه از کلمات رو بدست بیارین و لغت رو توی اون آرایه جستجو کنید.
اینطوری میشه بدست آورد.
از تابع split میتونی استفاده کنی.
ممنون میشم اگه بگید چطوری از Split استفاده کنم؟

Mofid.m
یک شنبه 23 فروردین 1394, 20:42 عصر
مثلا فرض کن اون متن توی متغیری هست به اسم strText
و متن ورودی هم strInputText.
کدش:


string strText = "this is a sample text";
string[] strArray = strText.Split(' ');
string strInputText;
int count=0;
for (int i = 0; i < strArray.Length; i++)
if (strArray[i] == strInputText)
count++;

malizergani
یک شنبه 23 فروردین 1394, 22:29 عصر
string text = "1 2 3 4 5 6 7 8 8 9 1 4 2 2 2 3 9 5";
var results = text.Split(' ')
.GroupBy(d => d)
.Select(d => new { Key = d.Key, Count = d.Count() })
.OrderBy(d => d.Key)
.OrderBy(d => d.Count);

foreach (var result in results)
{
MessageBox.Show(string.Format("Number={0} , Count={1}", result.Key, result.Count));
}