PDA

View Full Version : جستجوی حروف عربی



mostafag
پنج شنبه 28 آذر 1392, 18:57 عصر
با سلام

فرض کنید یه متن عربی توی تکست باکس داریم که حالا کاربر میخواد توش جستجو کنه

ولی خب مشکل اینجاست که اگه کاربر مثلا کلمه ی بسم الله رو سرچ کنه چیزی پیدا نمیکنه، در صورتی که توی متن ما بسم الله وجود داره ولی با اعراب کامل نوشته شده!! منتها چون کاربر اعراب رو وارد نکرده توی متن هم پیداش نمیکنه!

حالا چه کدی بنویسم که بتونه سرچ توی همچین متنی انجام بده.

حالا از اینش که بگذریم میرسیم به ی و ک فارسی و عربی!! اینارو هم پیدا نمیکنه

کلا چه کار باید کرد که همزه و اعراب توی متن موقع جستجو در نظرگرفته نشه و چکار کرد که بین ی و ک فارسی و عربی هم تفاوت قائل نشه!!

ممنون میشم راهنمایی کنید

Hossis
پنج شنبه 28 آذر 1392, 19:52 عصر
باید با جستجوی عبارت با قاعده باشه
من یک سورس داشتم که جستجو رو در متون عربی(قرآن) انجام داده بود ولی پیچیده بود.
توی همین سایت بود
قرآن رو سرچ کن پیدا می شه

mostafag
جمعه 29 آذر 1392, 00:02 صبح
ممنون از شما دوست عزیز

به شخصه یه برنامه عربی رو دیدم که کتابخانه بود پر از کتابهای الکترونیک عربی که با یه تیک میتونست جستجو رو بدون در نظر گرفتن اعراب و همزه اونم توی بالای چند هزار کتاب که همشم فایل ورد بود انجام بده!! اونم در کمترین زمان ممکن! یعنی یک جورایی اصلا زمانبر نبود!! حالا من نمیدونم اون دقیقا چیکار میکرد ولی هر چی بود اینو ثابت میکرد که اینکار باید خیلی خیلی راحت تر از این حرفا باشه!!

به هر حال من یکم گشتم یه صفحه پیدا کردم : http://www.microsoft.com/middleeast/msdn/cpsrt.aspx#top

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

لطفا هر کس از دوستان میتونه یه نگاهی به این صفحه بندازه بگه دقیقا این کدها دارن چیکار میکنن و یه توضیح کوچیک هم به صورت ابتدایی برای من بدید!!

ممنون میشم

mostafag
یک شنبه 01 دی 1392, 13:56 عصر
آقا درخواستم خیلی سخت بود؟!؟!

من فقط میخوام یکی کمک کنه بگه توی همون لینکی که دادم در مورد جستجوی کلمات عربی نوشته یا نه؟!؟! چون خودم یکم مبتدی هستم نمیتونم درست متوجه بشم چطوری ازش استفاده کنم!

لطفا راهنمایی کنید

ممنون

Hossis
سه شنبه 07 بهمن 1393, 10:18 صبح
یک راه اینه که شما اول اعراب ها رو حذف کنید بعد متن خالص که به دست اومد، جستجو کنید، بعد از جستجو متن اصلی رو برگردونید
من از همین راه استفاده کردم و سرعتش هم بالاست

Hossis
سه شنبه 07 بهمن 1393, 10:32 صبح
آقا درخواستم خیلی سخت بود؟!؟!

من فقط میخوام یکی کمک کنه بگه توی همون لینکی که دادم در مورد جستجوی کلمات عربی نوشته یا نه؟!؟! چون خودم یکم مبتدی هستم نمیتونم درست متوجه بشم چطوری ازش استفاده کنم!

لطفا راهنمایی کنید

ممنون
من خودم تستش کردم خوب بود ولی مثلا اگر کلمه «اخرجنا» همراه اعراب رو با «اخرجتنا» بدون اعراب مقایسه کنید ، باز هم نتیجه رو مثبت نشون میده

Saman_12
سه شنبه 07 بهمن 1393, 11:36 صبح
لینک جالبی بود.
اگر خواستی از RegEx استفاده کنی میتونی برای هر کاراکتر (توجه کن گفتیم کلمه سرچ شده اعراب نداره) از رنج اعراب 0 - 2 تا در نظر بگیری میشه یک چنین حالتی :

(?:wordchar[\u064B-\u06D]{0,2})
حالا من دقیقا رنج اعراب رو نمیدونم این رو از رو کد کارکتر تو ویکی نوشتم :

Private Function SACJ(s As String) As String


Dim words() As String = s.Split(" ")
Dim pattern As String = ""


For i As Int32 = 0 To words.Length - 1


For Each c As Char In words(i)


pattern &= "(?:" & c & "[\u064B-\u065D]{0,2})"
Next


If i < words.Length - 1 Then pattern &= "\s"
Next


Return pattern
End Function

ghaem-soft
سه شنبه 07 بهمن 1393, 17:19 عصر
ممنون از شما دوست عزیز

به شخصه یه برنامه عربی رو دیدم که کتابخانه بود پر از کتابهای الکترونیک عربی که با یه تیک میتونست جستجو رو بدون در نظر گرفتن اعراب و همزه اونم توی بالای چند هزار کتاب که همشم فایل ورد بود انجام بده!! اونم در کمترین زمان ممکن! یعنی یک جورایی اصلا زمانبر نبود!! حالا من نمیدونم اون دقیقا چیکار میکرد ولی هر چی بود اینو ثابت میکرد که اینکار باید خیلی خیلی راحت تر از این حرفا باشه!!

به هر حال من یکم گشتم یه صفحه پیدا کردم : http://www.microsoft.com/middleeast/msdn/cpsrt.aspx#top

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

لطفا هر کس از دوستان میتونه یه نگاهی به این صفحه بندازه بگه دقیقا این کدها دارن چیکار میکنن و یه توضیح کوچیک هم به صورت ابتدایی برای من بدید!!

ممنون میشم

میشه نام برنامه تون رو بگید
من خیلی دنبال چنین برنامه ای هستم
جستجو با سرعت زیاد بین فایل ورد عربی