ডাটাবেস अस्पष्ट অনুসন্ধান ধারণা


13

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

আমাদের সারণী আমরা অনুসন্ধান করতে ইচ্ছুক:

**tblArticles**
Body - Soundex_Body - CharacterCoded_Body

সুতরাং আমরা শারীরিক প্রদর্শনের জন্য কাঁচা টেক্সট বডি সঞ্চয় করি। অন্যান্য 2 টি কলাম অনুসন্ধানগুলির জন্য ব্যবহৃত হয় যা নিম্নলিখিত উপায়ে প্রাক্কুমিত হয়:

Soundex

দেহটিকে এর শব্দের মধ্যে বিভক্ত করা হয়েছে এবং এর সাউন্ডেক্স সংস্করণে অনুবাদ করা হয়েছে। IE, ফলস্বরূপ শরীর কিছু হতে পারে:

H252 B54 C23 E33... etc

সুতরাং কেউ 'ডাইনোসরে' প্রবেশ করতে পারে এবং নিবন্ধের বডি 'ডাইনোসর' পড়ে এটি উভয়ই বি 26-তে মূল্যায়ন করে। তারপরে আমরা অনুসন্ধান শব্দটির সাউন্ডেক্স মানের উপরে একটি পছন্দ চালাই।

চরিত্রের কোডড

এমন একটি অক্ষর ম্যাপিং দেওয়া হয়েছে যা প্রধান সংখ্যাগুলিতে অক্ষরগুলি মানচিত্র করে, IE:

h = 2
e = 3
l = 5
o = 7
p = 11
c = 13

help = 2*3*5*11     =   330
hello = 2*3*5*5*7   =   1050
hell = 2*3*5*5      =   150
hlep = 2*5*3*11     =   330
cello = 13*3*5*5*7  =   6825

যদি কোনও ব্যবহারকারী 'হ্যালো' টাইপ করতে চান তবে তারা দুটি বা ততোধিক অক্ষরকে উদাহরণ হিসাবে 'হ্যালো' হিসাবে বদলেছেন, তারা একই সংখ্যায় মূল্যায়ন করবেন। কাঁচা দেহকে শব্দের মধ্যে বিভক্ত করুন, প্রতিটি শব্দের প্রাইমকে এনকোড করুন এবং ডেটাবেসগুলিতে স্টোর করুন যা আপনাকে এমন একটি ক্ষেত্র দেয় যা দেখায়:

330 6825 330 1050... etc

এরপরে ভুল টাইপের সাথে মেলে আমরা এই মানটির উপর অনুসন্ধান পছন্দ করতে পারি।

উপকারিতা

  • টাইপগুলি এর বিরুদ্ধে সুরক্ষিত
  • ফোনেটিক ভুল বানান বিরুদ্ধে সুরক্ষিত
  • আরও অ-নেটিভ ইংলিশ বান্ধব কথা বলা
  • যে কোনও ভাষায় কাজ করবে (যেখানে সাউন্ডেক্স কাজ করে)

মন্তব্য এবং চিন্তা? একরকম বহু স্তরযুক্ত অনুসন্ধান। এটিকে আরও উন্নত করতে আপনি অবশ্যই ওজন ফেরতের মানগুলি করতে পারেন (IE একটি আক্ষরিক পাঠ্যের বডি মিল বেশি মূল্যবান), তবে কী বানান ত্রুটি এবং অ নেটিভ ইংলিশ স্পিকার অনুসন্ধানগুলি করার জন্য এটি একটি ভাল সমাধান?


এটি কীভাবে ত্রিগ্রাম অনুসন্ধানের সাথে তুলনা করে তা দেখতে আকর্ষণীয় হবে।
সমৃদ্ধ

আমি ওয়ার্ডপ্রেসের জন্য এরকম কিছু পেতে চাই ...
কিট মেনকে

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

1
@ গ্লেন আফাইক একসাথে একসাথে একটি অনন্য সংখ্যা উত্পন্ন করে multip অ্যানাগ্রামগুলি সংঘর্ষিত হবে তবে সমস্যাটি কতটা তাড়াতাড়ি তাড়িত হবে, এটি প্রাথমিকভাবে দ্রুত অ্যানগ্রগ্রামগুলি সন্ধান করা।
টম

@ গ্লেন: স্বতন্ত্রতার জন্য অনন্য ফ্যাক্টেরাইজেশন উপপাদ্যটি দেখুন।
স্টিভেন এভার্স

উত্তর:


2

অন্যান্য বেশ কয়েকটি অনুসন্ধান অ্যালগরিদম রয়েছে। মানব পাঠ্যের জন্য স্মিথ-ওয়াটারম্যান অন্যতম সেরা, যখন ডিএনএ সিকোয়েন্সগুলি অনুসন্ধান করার জন্য ব্লাস্ট (এখন পর্যন্ত) সেরা। আপনি hlepপরিবর্তে বিভিন্ন বানান ত্রুটি যেমন পাঠ্য উপস্থাপন করা হয় তখন আপনি সর্বনিম্ন সম্পাদনার দূরত্বhelp খুঁজছেন ।

এসকিউএল সার্ভার ২০০ 2005 (এবং তারপরে ) সিএলআর-এ এই ফাংশনগুলির একটি সংখ্যা বাস্তবায়নের জন্য একটি লাইব্রেরির জন্য, উত্স ফোর্স প্রকল্প সিমমেট্রিক্সটি দেখুনসিমমেট্রিক্স সম্পর্কে ব্লগ পোস্টhttp://staffwww.dcs.shef.ac.uk/people/S.Chapman/simmetrics.html

সাউন্ডেক্স বিকাশ করা হয়েছিল কারণ আঞ্চলিক বক্তৃতা পরিবর্তনের মধ্যে প্রাথমিক পার্থক্য প্রায় স্বতন্ত্রভাবে স্বরগুলিতেই ছিল - এই কারণেই এটি স্বরগুলি ছুঁড়ে ফেলে। ট্রান্সপোজড চিঠিগুলি মোকাবেলা করা ভাল নয়।


2

অ্যাপাচি সোলার, প্রতিশব্দ এবং বানান সংশোধন সমর্থন করে - যদিও এটি এখনও প্রান্তগুলির কাছাকাছি কিছুটা রুক্ষ।

অস্পষ্ট অনুসন্ধানগুলি এনজিআরএম ব্যবহার করে প্রয়োগ করা যেতে পারে,

পোর্টার স্টেমার: http://tartarus.org/~martin/PorterStemmer/

এবং একটি ভাষা ডাটাবেস যেমন http://wordnet.princeton.edu/

... তবে জ্যাপিয়ান এবং সোলারের মতো প্রকল্পগুলি আপনার পক্ষে এটি পরিচালনা করে।

আপনি যদি নিজের নিজস্ব শব্দ অনুসন্ধান শব্দটি পার্সিং / অনুসন্ধান ইঞ্জিন তৈরি করতে চান তবে আমি ভাষা সন্ধানের জন্য ডিজাইন করা একটি বিদ্যমান ডাটাবেসে আপনার তৈরি টোকেন বা শর্তাদি রাখার পরামর্শ দেব।


1

আমি ঠিক এর আগে কিছু ঠিকানার জন্য করেছি যা একটি স্ট্রিংকে অন্য স্ট্রিংয়ে রূপান্তর করতে কত পরিবর্তন নিতে পারে তা পরীক্ষা করে দেখবে এবং দু'টি কতটা কাছাকাছি মিলিত হয়েছে তা 0 এবং 1 এর মধ্যে একটি সংখ্যাসূচক মান ফিরে আসবে।

এটি উত্তম কাজ করেছে যেহেতু এটি এন / উত্তর, সেন্ট / স্ট্রিট, ইস্টমেন / মেইনস্ট ইত্যাদি জাতীয় আইটেমগুলির জন্য একটি উচ্চ মানের ফেরত দেবে এই কোডপোজেক্ট লিংক থেকে ধারণাটি এসেছে


ঠিকানার সাথে মেলে ওপেন সোর্সের জন্য আপনি যে কোডটি লিখেছেন তা কি?
থিম্যাটটার্স

@ এই তাত্ত্বিকদের আমার কাছে কোডটি অ্যাক্সেস নেই, তবে আমার উত্তরের লিঙ্কটিতে এটির জন্য যুক্তি সরবরাহ করা উচিত। মূলত আপনি কেবল দেখতে চান যে একটি স্ট্রিংটিকে অন্য একটিতে রূপান্তর করতে কতগুলি পরিবর্তন লাগবে, এবং তারপরে যত কম পরিবর্তন হবে ততই কাছাকাছি
রাচেল

0

আপনি যদি নাম, বা লোক বা জায়গাগুলির সাথে মিল করছেন তবে একটি প্রতিশব্দ তালিকাটি আরও ভাল কাজ করতে পারে।

সাউন্ডেক্স "ডিক == রিচার্ড" "কিট == ক্রিস্টোফার" বা "মিসেস == মিসেস" এর সাথে মেলে না।

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