লুসিন বিশ্লেষকদের তুলনা


104

কেউ দয়া করে Lucene এর মধ্যে বিভিন্ন বিশ্লেষকের মধ্যে পার্থক্যটি ব্যাখ্যা করতে পারেন? আমি একটি সর্বাধিক ক্লাউসকাউন্টের ব্যতিক্রম পাচ্ছি এবং আমি বুঝতে পারি যে আমি কীওয়ার্ডআনালাইজার ব্যবহার করে এড়াতে পারি তবে বিশ্লেষকগুলির আশেপাশের সমস্যাগুলি না বুঝে আমি স্ট্যান্ডার্ডএনালিজার থেকে পরিবর্তন করতে চাই না। অনেক ধন্যবাদ.

উত্তর:


209

সাধারণভাবে, লুসিনে কোনও বিশ্লেষক হলেন টোকেনাইজার + স্টেমার + স্টপ-ওয়ার্ড ফিল্টার।

টোকেনাইজার আপনার পাঠ্যটিকে অংশগুলিতে বিভক্ত করে এবং বিভিন্ন বিশ্লেষক যেহেতু বিভিন্ন টোকেনাইজার ব্যবহার করতে পারে তাই আপনি বিভিন্ন আউটপুট টোকেন স্ট্রিমগুলি পেতে পারেন , যেমন পাঠ্যের অংশগুলির ক্রম। উদাহরণস্বরূপ, KeywordAnalyzerআপনি উল্লেখ করেছেন যে পাঠ্যটি মোটেও বিভক্ত হয় না এবং সমস্ত ক্ষেত্রকে একক টোকেন হিসাবে গ্রহণ করে। একই সময়ে, StandardAnalyzer(এবং অন্যান্য বিশ্লেষক) স্প্লিট পয়েন্ট হিসাবে স্পেস এবং বিরামচিহ্নগুলি ব্যবহার করে। উদাহরণস্বরূপ, "আমি খুব খুশি" বাক্যটির জন্য এটি তালিকা তৈরি করবে ["আমি", "আমি", "খুব", "খুশি"] (বা এরকম কিছু)। নির্দিষ্ট বিশ্লেষক / টোকেনাইজারগুলির আরও তথ্যের জন্য এর জাভা ডক্স দেখুন

প্রশ্নযুক্ত একটি শব্দের ভিত্তি পেতে স্টেমার ব্যবহার করা হয়। এটি প্রচুরভাবে ব্যবহৃত ভাষার উপর নির্ভর করে। উদাহরণস্বরূপ, ইংরেজিতে পূর্ববর্তী বাক্যাংশগুলির জন্য ["আমি", "থাক", "ভেরি", "হপি"] উত্পাদিত হবে এবং ফরাসি "জি সুস ট্রাস হিউরাক্স" এর জন্য একধরনের ফরাসি বিশ্লেষক (যেমন SnowballAnalyzer, আরম্ভীকৃত) "ফরাসি" সহ) "" জে "," êত্রে "," ট্রে "," হিউর "] উত্পাদন করবে। অবশ্যই, আপনি যদি অন্য ভাষার পাঠ্য স্টেম করতে একটি ভাষার বিশ্লেষক ব্যবহার করেন, অন্য ভাষার নিয়ম ব্যবহার করা হবে এবং স্টিমার ভুল ফল দিতে পারে। এটি সমস্ত সিস্টেমে ব্যর্থ নয়, তবে অনুসন্ধানের ফলাফলগুলি কম সঠিক হতে পারে।

KeywordAnalyzerকোনও স্টিমার ব্যবহার করে না, এটি সমস্ত ক্ষেত্রটি অযৌক্তিকভাবে পাস করে। সুতরাং, আপনি যদি ইংরেজী পাঠ্যে কিছু শব্দ অনুসন্ধান করতে যাচ্ছেন তবে এই বিশ্লেষকটি ব্যবহার করা ভাল ধারণা নয়।

স্টপ শব্দগুলি সবচেয়ে ঘন ঘন এবং প্রায় অকেজো শব্দ। আবার এটি ভাষার উপর অনেক বেশি নির্ভর করে। ইংরেজির জন্য এই শব্দগুলি "ক", "" "," আমি "," থাক "," আছে "ইত্যাদি। স্টপ-শব্দের ফিল্টারগুলি অনুসন্ধানের ফলাফলগুলিতে কম শব্দে টোকেন স্ট্রিম থেকে সরিয়ে দেয়, সুতরাং শেষ পর্যন্ত আমাদের" আই "শব্দবন্ধটি 'খুব খুশি' এর সাথে StandardAnalyzerতালিকায় রূপান্তরিত হবে ["ভেরি", "হ্যাপি"]।

এবং KeywordAnalyzerআবার কিছুই করে না। সুতরাং, KeywordAnalyzerআইডি বা ফোন নম্বরগুলির মতো জিনিসগুলির জন্য ব্যবহৃত হয় তবে সাধারণ পাঠ্যের জন্য নয়।

এবং আপনার maxClauseCountব্যতিক্রম হিসাবে , আমি বিশ্বাস করি আপনি এটি অনুসন্ধানে পেয়েছেন। এই ক্ষেত্রে সম্ভবত এটি খুব জটিল অনুসন্ধান অনুসন্ধানের কারণে। এটি বেশ কয়েকটি ক্যোয়ারিতে বিভক্ত করার চেষ্টা করুন বা আরও নিম্ন স্তরের ফাংশন ব্যবহার করুন।


1
@ ফ্রেন্ড: আমি মনে করি না স্টেমার (স্নোবল বা অন্যান্য অ্যালগোরিদম ব্যবহার করে) - - হতে পারে কারণ এটি লেমাটাইজারের কাজ। আপনি এখানে এটি পরীক্ষা করে দেখতে পারেন snowball.tartarus.org/demo.php
Tho

তাহলে টিকা কোথায় এটি ফিট? এটি কি প্রযুক্তিগতভাবে বিশ্লেষক নয়?
আনন

1
@ অ্যানন: টিকা বেশ কয়েকটি মূল বৈশিষ্ট্য সহ একটি পৃথক প্রকল্প। আপনারা টিকা পার্সার বলতে চাইছেন তা ধরে নিলাম, আমি বলব যে টিকা বাইট স্ট্রিম গ্রহণ করে এবং টেক্সট + মেটাডেটা আউটপুট দেয়, যখন লুসিন বিশ্লেষক পাঠ্য এবং আউটপুট প্রক্রিয়াজাত টোকেন স্ট্রিম গ্রহণ করে। উদাহরণস্বরূপ, আপনি প্রথমে টিকার সাথে পিডিএফ বা এক্সএমএল ফাইলটি বিশ্লেষণ করতে পারেন, "শিরোনাম", "লেখক" এবং "পাঠ্য" এর মতো ক্ষেত্রগুলি সহ নথি তৈরি করতে পারেন এবং তারপরে Lucene বিশ্লেষকগুলির সাথে এই ক্ষেত্রগুলির কয়েকটি বা সমস্ত বিশ্লেষণ করতে পারেন।
বন্ধু

শুধু ভাবছি, "খুব" এবং "খুশি" শব্দগুলি অস্বীকার করা হয় না, কেন সেগুলি "ভেরি" এবং "হ্যাপি" রূপান্তরিত হয়? তারা কি অনুরূপ বলে মনে হচ্ছে আমি <-> y পার্থক্যের সাথে এটি মিলছে?
ওগুজালব

0

আমার দৃষ্টিতে, আমি ব্যবহার করেছি StandAnalyzerএবং SmartCNAnalyzer। যেহেতু আমাকে চাইনিজ ভাষায় পাঠ্য অনুসন্ধান করতে হবে। স্পষ্টতই, SmartCnAnalyzerচীনা পরিচালনার ক্ষেত্রে আরও ভাল। ডাইফেরেন্ট উদ্দেশ্যে, আপনাকে প্রোপারেস্ট বিশ্লেষক নির্বাচন করতে হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.