PDA

View Full Version : سوال: جستجو در 10000فایل متنی؟



mehrab1387
سه شنبه 06 دی 1390, 19:33 عصر
سلام دوستان
موضوع پروژه کارشناسی من word clustering است.من برای اینکار یک مجموعه اطلاعات دارم که باید روی انها کار کنم.من 9دسته موضوع مثل اجتماعی ،ورزشی و... دارم که هر کدام از دسته ها دارای 1000 سند متنی txt می باشد.یعنی مجموعا با 9000 فایل متنی رو به رو هستم که باید برای کلمات مشخصی که باید کلاستر شوند ،روی این سندها جستجو انجام بدم.
مثلا کلمه فوتبال :باید ببینم که در این مجموعه سند چندتای آن شامل کلمه فوتبال است.
البته باید جستجوهای 2 تایی نیز داشته باشم،مثلا فوتبال and توپ و...
می خواهم بدانم به نظرشما،همین طور روی فایل ها سرچ کنم بهتر است یا اینکه به SQL منتقل کنم؟
اگر بخواهم به SQLمنتقل کنم چطور باید انجام بدهم؟
چه کار هایی انجام دهم تا سرعت این برنامه زیاد تر بشه؟
:اشتباه:

sobaisobai
سه شنبه 06 دی 1390, 19:43 عصر
سلام
ب نطر من فایل بهتره
لینک زبر رو نگاه بنداز
http://barnamenevis.org/showthread.php?313047-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88-%D8%AF%D8%B1-%D8%AA%DA%A9%D8%B3%D8%AA-%D8%A8%D8%A7%DA%A9%D8%B3

سوداگر
سه شنبه 06 دی 1390, 21:17 عصر
سلام
ب نطر من فایل بهتره
لینک زبر رو نگاه بنداز
http://barnamenevis.org/showthread.php?313047-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88-%D8%AF%D8%B1-%D8%AA%DA%A9%D8%B3%D8%AA-%D8%A8%D8%A7%DA%A9%D8%B3

اینجا بیشتر بحث داده کاوی مطرحه و چیزی بیشتر از جستجو در تکتباکس نیاز داریم.
به نظر من بهتره از ساختار XML استفاده کنیم مثلا ساختاری شبیه زیر:
<Root>
<Sports label="ورزش، تربيت بدني">
<Topic1 label="قطبي ، دايي، استيلي، فوتبال، توپ">
<!--متن ورزشي شماره يک-->
</Topic1 >
<Topic2 label="شطرنج، احسان قائم مقامي، وزير، کيش">
<!--متن ورزشي شماره دو-->
</Topic2 >
........
......
</Sports>
<social label="اجتماعي، هنجار">
<Topic1>
<!--متن اجتماعي شماره يک-->
</Topic1>
</social>
</Root>
اون 1000 فایل ورزشی به صورت 1000 رکورد XML در می آیند و با دستورات LINQ TO XML در سی شارپ به راحتی می توانید جستجوی مورد نظر را انجام دهید.

sobaisobai
سه شنبه 06 دی 1390, 21:19 عصر
اینجا بیشتر بحث داده کاوی مطرحه و چیزی بیشتر از جستجو در تکتباکس نیاز داریم.
به نظر من بهتره از ساختار XML استفاده کنیم مثلا ساختاری شبیه زیر:
<Root>
<Sports>
<Topic1>
<!--متن ورزشي شماره يک-->
</Topic1>
<Topic2>
<!--متن ورزشي شماره دو-->
</Topic2>
........
......
</Sports>
<social>
<Topic1>
<!--متن اجتماعي شماره يک-->
</Topic1>
</social>
</Root>
اون 1000 فایل ورزشی به صورت 1000 رکورد XML در می آیند و با دستورات LINQ TO XML در سی شارپ به راحتی می توانید جستجوی مورد نظر را انجام دهید.
سرعت XML بیشتره یا SQL ؟

سوداگر
سه شنبه 06 دی 1390, 21:21 عصر
بستگی به شرایط داره ولی در اکثر موارد XML

rahmatr
سه شنبه 06 دی 1390, 22:24 عصر
بستگی به شرایط داره ولی در اکثر موارد XML

برای اطلاعات کم (مثلا 100 رکورد) ممکن است سرعت xml بیشتر باشد ولی در حجم بالای اطلاعات سرعت خواندن اطلاعات از xml اصلا قابل قیاس با sql نیست. sql بسیار سریعتر است :
XML is not a database (http://stackoverflow.com/questions/201568/when-would-i-use-xml-instead-of-sql)
XML vs SQL for small projects? (http://programmers.stackexchange.com/questions/101893/xml-vs-sql-for-small-projects)

in_chand_nafar
سه شنبه 06 دی 1390, 22:38 عصر
جستجو در فايل هاي متني را مي توانيد با استفاده از ابزاري به نام Lucene.NET استفاده كنيد (يه بررسي كن ببين به كارت مياد يا نه اگر نه يه راه حل ديگه هم به نظرم مي رسه كه اون رو بهت معرفي كنم)
http://www.aliaghdam.ir/2011/02/lucenenet.html
http://www.aliaghdam.ir/2011/02/lucenenet_02.html

http://www.30sharp.com/article/4/222/1/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-%DB%8C-%D9%85%D8%B4%D9%87%D9%88%D8%B1-%D9%88-%D9%82%D8%AF%D8%B1%D8%AA%D9%85%D9%86%D8%AF-lucenenet-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84.aspx

http://www.30sharp.com/article/4/229/1/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-%DB%8C-%D9%85%D8%B4%D9%87%D9%88%D8%B1-%D9%88-%D9%82%D8%AF%D8%B1%D8%AA%D9%85%D9%86%D8%AF-lucenenet-%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%88%D9%85.aspx

http://www.30sharp.com/article/4/230/1/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-%DB%8C-%D9%85%D8%B4%D9%87%D9%88%D8%B1-%D9%88-%D9%82%D8%AF%D8%B1%D8%AA%D9%85%D9%86%D8%AF-lucenenet-%D9%82%D8%B3%D9%85%D8%AA-%D8%B3%D9%88%D9%85.aspx

http://www.30sharp.com/article/4/235/1/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-%DB%8C-%D9%85%D8%B4%D9%87%D9%88%D8%B1-%D9%88-%D9%82%D8%AF%D8%B1%D8%AA%D9%85%D9%86%D8%AF-lucenenet-%D9%82%D8%B3%D9%85%D8%AA-%DA%86%D9%87%D8%A7%D8%B1%D9%85.aspx

سوداگر
سه شنبه 06 دی 1390, 22:54 عصر
XML is not a database
چه جالب:قهقهه:

http://img2.imagesbn.com/images/111700000/111709530.jpg
اینم آدرس خریدش (http://www.barnesandnoble.com/w/professional-xml-databases-kevin-williams/1003689319):لبخند:

از قیاسش خنده آمد خلق را
کو چو خود پنداشت صاحب دلق را
معنی: چون به اکسس و اس کیو ال و ... عادت کردیم فکر می کنیم XML نمیتونه پایگاه داده باشه!

rahmatr
سه شنبه 06 دی 1390, 23:59 عصر
بستگی به شرایط داره ولی در اکثر موارد XML
کجای این کتاب گفته که xml سریعتر از sql است؟

آنطور که من از خلاصه کتاب فهمیدم، در مورد استفاده بهتر از xml به عنوان بانک اطلاعاتی است.

در ضمن نمی دانم چرا لحن بعضی جوابها تند است. بالاخره اینجا محلی برای یادگیری است و داریم روی موضوعی بحث می کنیم که اگر دوستانه تر باشد، بهتر است.

سوداگر
چهارشنبه 07 دی 1390, 00:32 صبح
این کتاب نگفته کدوم سریعتره، همون که شما فهمیدید درسته -->در مورد استفاده ی بهتر، از xml به عنوان بانک اطلاعاتی است.
من فقط میخواستم بگم با XML هم دیتابیس میشه درست کرد چون شما فرمودید: XML is not a database من این کتاب رو گذاشتم تا بگم اتفاقا XML is a database
البته پدر آدم در میاد تا خودش پایگاه رو مدیریت کنه!
/* این تاپیک در مورد جستجو و کلاستر کردن تعدادی متن بود، من اون پست رو در جواب جناب sobaisobai دادم لطفا پست ها رو باهم قاطی نکنید*/

mehrab1387
چهارشنبه 07 دی 1390, 09:40 صبح
دوستان از جواب ها تون ممنون
اما من برای هر فایل و برای هر کلمه فایل باید روی کل سند ها جستجو بزنم و انتقال خود انها به xml یک کار وقت گیر دیگر است.
دوستان نظر دیگری ندارید؟

سوداگر
چهارشنبه 07 دی 1390, 14:18 عصر
انتقال خود انها به xml یک کار وقت گیر دیگر است.
مگه انتقال اونها به SQL وقت گیر نیست؟!:متعجب:
البته من خیال کردم شما می خواهید به صورت هوشمند، موضوعات را طبقه بندی کنید که گفتم XML. اگر اینطور هست که شما باید یه تحقیق مختصر در مورد وب معنایی انجام بدین.
اما مثل اینکه می خواهید برنامه ای مثل google Desktop بسازید؟درسته؟