PDA

View Full Version : مبتدی: پیدا کردن بیشترین کلمه تکرار شده و تعداد تکرار آن در یک رشته



zamani73
یک شنبه 26 فروردین 1397, 18:07 عصر
سلام

چطوری یه فایل تکست انتخاب کنیم بعد توی متن رو بگرده و بجز اون کلماتی که بهش قبلا معرفی کردم که صرف نظر کنه کلماتی که زیاد تکرار شدنو لیست کنه مثلا
50 تا کلمس 25 تاش کلمات بیخودیه مثلا " از با ایا " بعد توی 25 تا کلمه باقی مانده 10 تا مثلا" ایران" بکار رفته برنامه سرچ کنه و بگه ایران کلمه شماست
ممنون میشم کمک کنید تشکرررر خدا خیرتون بدد https://forum.soft98.ir/images/smilies/yahoo/53.gif

اینم تصویر نمونه
http://uupload.ir/files/xuen_sketch.png

یه تصویرم از برنامه خودم
http://uupload.ir/files/pl9p_screenshot_(879).png
(http://uupload.ir/files/u9t7_sketch.png)
الان راهنمایی بکنید یا کمکی بکنید راه بیوفته کارم خیلی گیرم دو هفتس درگیر این یه تیکه هستم
اینم سورس برنامه اگه لازمه 250 کیلوبابت

http://uupload.ir/view/cl3j_search.rar/

danialafshari
دوشنبه 27 فروردین 1397, 02:28 صبح
با سلام
چون تلاش کردید کمی کمکتون میکنم
خدا رو شکر Linq و Expression کار برنامه نویسا رو راحت کرده

string text = "";
var File = System.IO.File.ReadAllLines(@"d:\File.txt");
foreach (var item in File)
{
text += item + " ";
}
var words = text.Split(' ');
IGrouping<string, string> max =
words.GroupBy(n => n)
.OrderByDescending(g => g.Count())
.First();
Console.WriteLine("Maximum Word = {0}{1}Repeat = {2}", max.Key, Environment.NewLine, max.Count());

باقیش با خودتون
موفق باشید

336699
دوشنبه 27 فروردین 1397, 12:57 عصر
سلام
شما بهتره از RegularExpressions استفاده کنید.

این کد ، تعداد کلمه های ایران رو از متن استخراج میکنه.


private void button1_Click(object sender, EventArgs e)
{
var count = System.Text.RegularExpressions.Regex.Matches(textB ox1.Text, "\\b" + "ایران" + "\\b").Count;

}

nunegandom
دوشنبه 27 فروردین 1397, 22:30 عصر
با سلام
کلمات بیخودی = Stop Words = ایست واژه :لبخند:
قسمت سئو خود مقاله داستان ها داره
اما در مورد سوالتون:
بهتره که با استفاده از regex یک به یک کلمات رو جدا کنید
کلمات رو با استفاده از فاصله میشه تشخیص داد و اینکه مسلما چیزی جز حروف نیستند
فارسی ها میشه با unicode یا به صورت دستی مشخص بشن