PDA

View Full Version : گفتگو: تقسيم بندي متن



f_g1348
چهارشنبه 14 تیر 1391, 15:17 عصر
با سلام
دوستان من مي خواهم روي پروژه اي كار كنم كه يك متن چندين جمله اي را از ورودي مي گيرد و سپس تشخيص مي دهد كه كدام جملات با هم مرتبط هستند ( Topic segmentation )
براي اين كار چندين روش وجود دارد از جمله اينكه كلمات مهم درون هر جمله را مشخص كرد و تعداد تكرار اين كلمات مهم را در جملات مجاور با هم مقايسه كرد به اين ترتيب جملات را بر اساس وابستگي كلمات باهم مقايسه مي كنيم .
براي اين كار بايد اول متن ورودي را به جملات سازنده تفكيك كنيم و سپس براي هر جمله كلمات و علائم اضافي را حذف كرده و كلمات كليدي هر جمله را پيدا كنيم سپس تعداد تكرار كلمات كليدي را در هر جمله شمارش كرده و با جملات كناري مقايسه مي كنيم .
حال براي چنين پياده سازي چه كارهايي بايد انجام داد ؟ ( طريقه كد نويسي )

tooraj_azizi_1035
چهارشنبه 14 تیر 1391, 18:07 عصر
سلام
دوست من فکر می کنم استفاده از کلاس System.Text.RegEx خیلی بهت کمک کنه.
http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.aspx


using System;
using System.Text.RegularExpressions;

public class Test
{

public static void Main ()
{

// Define a regular expression for repeated words.
Regex rx = new Regex(@"\b(?<word>\w+)\s+(\k<word>)\b",
RegexOptions.Compiled | RegexOptions.IgnoreCase);

// Define a test string.
string text = "The the quick brown fox fox jumped over the lazy dog dog.";

// Find matches.
MatchCollection matches = rx.Matches(text);

// Report the number of matches found.
Console.WriteLine("{0} matches found in:\n {1}",
matches.Count,
text);

// Report on each match.
foreach (Match match in matches)
{
GroupCollection groups = match.Groups;
Console.WriteLine("'{0}' repeated at positions {1} and {2}",
groups["word"].Value,
groups[0].Index,
groups[1].Index);
}

}

}
// The example produces the following output to the console:
// 3 matches found in:
// The the quick brown fox fox jumped over the lazy dog dog.
// 'The' repeated at positions 0 and 4
// 'fox' repeated at positions 20 and 25
// 'dog' repeated at positions 50 and 54

maryam_sahar
پنج شنبه 15 تیر 1391, 14:47 عصر
با سلام

من می خوام یه کدی بنویسم که بتونه تشخیص بده متن وارد شده در textbox ، حرف هست یا عدد. در واقع می خوام یه کدی بنویسم که اگه متن وارد شده در textbox ، عدد نبود(حروف بود) ، برنامه Error دهد.

میشه راهنماییم کنید؟!؟

tooraj_azizi_1035
پنج شنبه 15 تیر 1391, 16:15 عصر
اگه منظورتون این هست که فقط عدد رو قبول کنه می تونید از MaskedTextBox استفاده کنید.

yashar666
پنج شنبه 15 تیر 1391, 20:15 عصر
در رویداد keypress تکس باکستون بنویس


if (!(char.IsNumber(e.KeyChar)) && ((int)e.KeyChar != 8))
e.KeyChar='\0';
}
ایجوری فقط عدد میگره

maryam_sahar
جمعه 16 تیر 1391, 20:59 عصر
در رویداد keypress تکس باکستون بنویس


if (!(char.IsNumber(e.KeyChar)) && ((int)e.KeyChar != 8))
e.KeyChar='\0';
}
ایجوری فقط عدد میگره


ممنونم.اگه بخوام اعداد اعشاری رو هم قبول کنه باید چکار کنم؟ با این کد تکست باکس فقط عدد صحیح می گیره

maryam_sahar
جمعه 16 تیر 1391, 21:01 عصر
اگه منظورتون این هست که فقط عدد رو قبول کنه می تونید از MaskedTextBox استفاده کنید.


بله منظورم همینه.میشه یکم بیشتر توضیح بدید؟چطوری از MaskedTextBox استفاده کنم؟