سؤال

دون الحصول على شهادة البكالوريوس في استرجاع المعلومات ، أود أن أعرف إذا كان هناك أي خوارزميات لحساب تردد تلك الكلمات تحدث في جسم معين من النص.الهدف هو الحصول على "المظهر العام" ما يقوله الناس على مجموعة من التعليقات النصية.على غرار Wordle.

ما أود:

  • تجاهل المواد ، الضمائر ، إلخ ('a', 'an'،'', 'له', 'لهم' إلخ)
  • الحفاظ على الأسماء المناسبة
  • تجاهل الواصلة ، باستثناء لينة نوعا ما

الوصول للنجوم, هذه ستكون خوخي:

  • التعامل مع الناشئة & الجمع (مثلا ، مثل, يحب, يحب, تروق المباراة على نفس النتيجة)
  • مجموعة من الصفات (الاحوال ، الخ) مع رعاياهم ("خدمة كبيرة" بدلا من "رائعة", "الخدمة")

لقد حاول بعض الأشياء الأساسية باستخدام Wordnet ولكن أنا فقط التغيير والتبديل الأشياء عمياء و أتمنى أنه يعمل بالنسبة لي بيانات محددة.شيء أكثر عمومية من شأنها أن تكون كبيرة.

هل كانت مفيدة؟

المحلول

سوف تحتاج ليس واحدة بل عدة لطيفة الخوارزميات ، على غرار ما يلي.

  • تجاهل الضمائر يتم عن طريق stoplist.
  • الحفاظ على الأسماء المناسبة?تقصد الكشف عن اسمه كيانات مثل هوفر السد قائلا "إنها كلمة واحدة" أو الأسماء المركبة مثل البرمجة اللغة?سأعطيك تلميحا:هذا هو واحد صعبة ، ولكن توجد المكتبات على حد سواء.البحث عن NER (اسمه entitiy الاعتراف) و المعجمية التقسيم. OpenNLP هو جافا-الأدوات التي لا حد سواء.
  • تجاهل الواصلة?هل تقصد مثل في خط فواصل ؟ استخدام التعبيرات العادية و التحقق من كلمة الناتجة عن طريق بحث القاموس.
  • التعامل مع الجمع/نابعة:يمكنك أن تبحث في كرة الثلج stemmer.فإنه لا حيلة بشكل جيد.
  • "التجمع" الصفات مع الأسماء عموما مهمة الضحلة تحليل.ولكن إذا كنت تبحث خصيصا الصفات النوعية (جيد, سيئة, سيئة, مذهلة...) كنت قد تكون مهتمة في تحليل المشاعر. LingPipe يفعل هذا, وأكثر من ذلك بكثير.

أنا آسف, أنا أعلم أنك قلت أنك تريد قبلة ، ولكن للأسف ، مطالبكم ليست سهلة لتلبية.ومع ذلك ، توجد أدوات من أجل كل هذا ، يجب أن تكون قادرة على مجرد ربطها معا وليس لديك لأداء أي مهمة نفسك, إذا كنت لا تريد.إذا كنت ترغب في تنفيذ مهمة نفسك, أقترح عليك أن ننظر الناشئة, انها أسهل من كل شيء.

إذا كنت اذهب مع جافا, الجمع بين لوسين مع OpenNLP مجموعة الأدوات.سوف تحصل على نتائج جيدة جدا ، لوسين بالفعل stemmer بنيت في الكثير من البرنامج التعليمي.على OpenNLP أدوات ناحية أخرى موثقة توثيقا جيدا ، ولكن لن تحتاج كثيرا من ذلك.قد تكون مهتما أيضا في NLTK, مكتوبة في بيثون.

أود أن أقول لك لقد شرط آخر ، كما أنها تنطوي على الضحلة تحليل و سوف بالتأكيد لا إيمبوفي النتائج الخاصة بك.

آه, راجع للشغل.المصطلح الدقيق من تلك الوثيقة الأجل-التردد-شيء كنت تبحث عنه يسمى tf-جيش الدفاع الإسرائيلي.انها الى حد كبير أفضل طريقة للبحث عن الوثيقة التردد الشروط.من أجل القيام بذلك بشكل صحيح ، لن تحصل حول استخدام multidimenional المتجهات والمصفوفات.

...نعم أعرف.بعد أخذ ندوة حول IR احترامي جوجل أكبر.بعد القيام ببعض الأشياء في IR احترامي لهم فقط سقطت سريعا ، على الرغم من.

نصائح أخرى

مرحبا بكم في عالم البرمجة اللغوية العصبية ^_^

كل ما تحتاجه هو القليل من المعرفة الأساسية و بعض الأدوات.

هناك بالفعل الأدوات التي سوف أقول لكم إذا كان كلمة واحدة في الجملة هو اسم أم صفة أم فعل.ودعوا جزء من خطاب taggers.عادة ما تأخذ عادي الإنجليزية الإدخال و الإخراج كلمة قاعدة لها شكل و جزء من الكلام.هنا هو إخراج شعبية UNIX جزء من الكلام بلغة على الجملة الأولى من وظيفة الخاص بك:

$ echo "Without getting a degree in information retrieval, I'd like to know if there exists any algorithms for counting the frequency that words occur in a given body of text." | tree-tagger-english 
# Word  POS     surface form
Without IN  without
getting VVG get
a   DT  a
degree  NN  degree
in  IN  in
information NN  information
retrieval   NN  retrieval
,   ,   ,
I   PP  I
'd  MD  will
like    VV  like
to  TO  to
know    VV  know
if  IN  if
there   EX  there
exists  VVZ exist
any DT  any
algorithms  NNS algorithm
for IN  for
counting    VVG count
the DT  the
frequency   NN  frequency
that    IN/that that
words   NNS word
occur   VVP occur
in  IN  in
a   DT  a
given   VVN give
body    NN  body
of  IN  of
text    NN  text
.   SENT    .

كما يمكنك أن ترى, حدد "خوارزميات" بأنها صيغة الجمع (NNS) من "خوارزمية" و "موجود" كما يجري الاقتران (VBZ) من "الوجود". وحدد أيضا "" و "" كما "محددات (DT)" - آخر كلمة في المقال.كما يمكنك أن ترى, POS tagger أيضا tokenized علامات الترقيم.

أن تفعل كل شيء ولكن النقطة الأخيرة في القائمة الخاصة بك, تحتاج فقط لتشغيل النص من خلال POS tagger, تصفية الفئات التي لا تهمك (محددات, الضمائر, الخ.) والاعتماد على ترددات قاعدة أشكال الكلمات.

وهنا بعض POS شعبية taggers:

TreeTagger (الثنائية فقط:لينكس, سولاريس, OS-X)
جينيا بلغة (C++:تجميع النفس)
ستانفورد POS Tagger (جافا)

للقيام آخر شيء في القائمة الخاصة بك تحتاج إلى أكثر من مجرد كلمة-مستوى المعلومات.طريقة سهلة لبدء العد تسلسل من الكلمات بدلا من مجرد الكلمات نفسها.وتسمى هذه n-غرام.مكان جيد للبدء هو UNIX الشعراء.إذا كنت على استعداد للاستثمار في كتاب عن البرمجة اللغوية العصبية ، أود أن أوصي أسس إحصائية معالجة اللغة الطبيعية.

هنا هو مثال على كيف يمكنك أن تفعل ذلك في بيثون ، مفاهيم متشابهة في أي لغة.

>>> import urllib2, string
>>> devilsdict = urllib2.urlopen('http://www.gutenberg.org/files/972/972.txt').read()
>>> workinglist = devilsdict.split()
>>> cleanlist = [item.strip(string.punctuation) for item in workinglist]
>>> results = {}
>>> skip = {'a':'', 'the':'', 'an':''}
>>> for item in cleanlist:
      if item not in skip:
        try:
          results[item] += 1
        except KeyError:
          results[item] = 1

>>> results
{'': 17, 'writings': 3, 'foul': 1, 'Sugar': 1, 'four': 8, 'Does': 1, "friend's": 1, 'hanging': 4, 'Until': 1, 'marching': 2 ...

السطر الأول فقط يحصل على المكتبات التي تساعد على أجزاء من المشكلة ، كما في السطر الثاني ، حيث urllib2 تنزيل نسخة من أمبروز مور هو "الشيطان القاموس" في السطور القادمة تقديم قائمة من جميع الكلمات في النص ، دون علامات الترقيم.ثم يمكنك إنشاء جدول تجزئة ، وهو في هذه الحالة هو مثل قائمة من الكلمات الفريدة المرتبطة بعدد.لحلقة يذهب أكثر من كل كلمة في مور الكتاب ، إذا كان هناك بالفعل سجل كلمة في الجدول كل جديد وقوع إضافة إلى القيمة المرتبطة بهذه الكلمة في الجدول ؛ إذا كانت الكلمة لم تظهر بعد ، فإنه يحصل إضافة إلى الطاولة ، مع قيمة 1 (معنى واحد حدوثها.) من أجل الحالات تتحدث عنه كنت تريد أن تدفع أكثر بكثير من الاهتمام بالتفاصيل ، على سبيل المثال باستخدام رأس المال للمساعدة في تحديد الأسماء المناسبة إلا في منتصف الجمل ، وما إلى ذلك ، هذا هو خشن جدا ولكن يعبر عن المفهوم.

للوصول الى وقف و pluralization الأشياء ، التجربة ، ثم ننظر إلى الطرف 3rd العمل ، لقد استمتعت أجزاء من NLTK ، وهو أكاديمي مفتوح المصدر المشروع أيضا في بيثون.

كتبت برنامج كامل للقيام بذلك فقط حين يعود.أنا يمكن تحميل العرض في وقت لاحق عندما أحصل على المنزل.

هنا هو رمز (asp.net/c#):حttp://naspinski.net/post/Findingcounting-كلمات-خارج-من-النص-الوثيقة.aspx

الجزء الأول من سؤالك لا يبدو سيئا للغاية.كل ما عليك في الأساس تحتاج إلى القيام به هو قراءة كل كلمة من الملف (أو تيار w/e) ووضعه في بادئة شجرة وفي كل مرة كنت يحدث عند كلمة موجود بالفعل زيادة القيمة المرتبطة به.بالطبع سيكون لديك قائمة التجاهل من كل شيء كنت ترغب في استبعاده من الحسابات الخاصة بك كذلك.

إذا كنت تستخدم بادئة شجرة عليك التأكد من أن العثور على أي كلمة سوف O(N) حيث N هو الحد الأقصى لطول كلمة في مجموعة البيانات الخاصة بك.ميزة بادئة شجرة في هذه الحالة هو أنه إذا كنت ترغب في البحث عن صيغ الجمع ووقف يمكنك التحقق في O(M+1) إذا كان ذلك ممكنا حتى كلمة ، حيث م هو طول الكلمة دون الجذعية أو تعدد (هل هذه الكلمة ؟ الكالينجيون).مرة واحدة كنت قد بنيت البادئة شجرة أود أن reanalyze ذلك ينبع من هذا القبيل و تتكثف عليه بحيث أن جذر الكلمة هو ما يحمل النتائج.

عند البحث هل يمكن أن يكون بعض القواعد البسيطة في مكان مباراة العودة إيجابية في حالة من الجذر أو الساق أو ما إلى ذلك.

الجزء الثاني يبدو مهمة صعبة للغاية.بلدي السذاجة الميل إلى نتائج منفصلة عن صفة-الموضوع المجموعات.استخدام نفس المبادئ على النحو الوارد أعلاه ولكن فقط في إبقائها منفصلة.

خيار آخر التحليل الدلالي يمكن نمذجة كل جملة شجرة من الموضوع ، الفعل ، وما إلى ذلك العلاقات (جملة لها موضوع و الفعل الموضوع له اسم ولا صفة ، إلخ).مرة واحدة كنت قد كسرت كل من النص الخاص بك في هذا الطريق يبدو أنه قد يكون من السهل إلى حد ما إلى تشغيل من خلال الحصول على إحصاء سريع مختلفة مناسبة التزاوج الذي حدث.

فقط بعض التشتت ، أنا متأكد من أن هناك أفكار أفضل ، ولكن أنا أحب التفكير في هذه الأشياء.

الخوارزمية فقط وصفها.البرنامج الذي يفعل ذلك في الخروج من مربع مع زر كبير قائلا "هل لأنها"...أنا لا أعرف.

ولكن اسمحوا لي أن تكون بناءة.أنصحك بهذا الكتاب برمجة الذكاء الجماعي.الفصول 3 و 4 تحتوي على أمثلة واقعية جدا (حقا لا معقدة النظريات مجرد أمثلة).

ش يمكن استخدام worldnet القاموس إلى الحصول على المعلومات الأساسية من مسألة رئيسية مثل ماضيها الكلام استخراج مرادف ، ش يمكن أيضا أن تفعل الشيء نفسه بالنسبة المستند إلى إنشاء مؤشر على ذلك.ثم يمكنك بسهولة تطابق الكلمة الرئيسية مع مؤشر الملف و رتبة الوثيقة.ثم summerize ذلك.

كل ما عليك المدرجة يتم التعامل معها بشكل جيد من قبل سبسي.

  1. تجاهل بعض الكلمات - استخدام كلمات التوقف
  2. خلاصة الموضوع - استخدام جزء من خطاب tagging التعرف عليه (يعمل من خارج منطقة الجزاء).بعد جملة تحليل, العثور على "الجذر" - الفعل الرئيسي في الجملة.قبل التنقل في تحليل شجرة سوف تجد اسما يتعلق هذا الفعل.سيكون هذا الموضوع.
  3. تجاهل الواصلة - على tokenizer مقابض الواصلات في معظم الحالات.فإنه يمكن أن تمتد بسهولة إلى التعامل مع أكثر الحالات الخاصة.

إذا كانت قائمة مواضيع محددة مسبقا و لا كبيرة, بل قد تذهب أبعد من ذلك:بناء نموذج التصنيف التي سوف توقع الموضوع.دعونا نقول لديك 10 مواضيع.يمكنك جمع عينة الجمل أو النصوص.يمكنك تحميلها في منتج آخر: معجزة.باستخدام واجهة كبيرة بسرعة تعيين المواضيع العينات.وأخيرا باستخدام تصنيف العينات يمكنك تدريب سبسي نموذج للتنبؤ موضوع النصوص أو الجمل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top