سؤال

والمشكلة هي كما يلي:

ولدي ملخص واحد، وعادة ما بين 20 إلى 50 كلمة، ان كنت ترغب في مقارنة ملخصات أخرى مماثلة نسبيا. الفئة العامة والموقع الجغرافي الذي يشير ملخص لمعروفة.

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

ومجموعة البيانات حاليا حوالي 000 50 وثائق مع معدل نمو بلغ نحو 200 وثيقة في اليوم.

سوف

واللغات المفضل أن يكون بيثون، PHP، C / C ++، هاسكل أو إرلانج، أيهما قد انجاز هذه المهمة. أيضا، إذا كنت لا تمانع، أود أن أفهم المنطق لاختيار لغة معينة.

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

المحلول

هل يمكن أن يكون نظرة على WEBSOM مشروع .

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

نصائح أخرى

ويمكنك محاولة استخدام بعض التدابير تشابه سلسلة، مثل JACCARD والنرد، ولكن بدلا من حساب الطابع التداخل، على حساب كلمة تتداخل. على سبيل المثال، وذلك باستخدام بيثون، يمكنك استخدام ما يلي:

def word_overlap(a, b):
    return [x for x in a if x in b]


def jaccard(a, b, overlap_fn=word_overlap):
    """
    Jaccard coefficient (/\ represents intersection), given by :
        Jaccard(A, B) = (A /\ B) / (|a|) + (|b|) - (A /\ B)
    """
    c = overlap_fn(a, b)
    return float(len(c)) / (len(a) + len(b) - len(c))

jaccard("Selling a beautiful house in California".split(), "Buying a beautiful crip in California".split())

ونظرا لعدم وجود دعم أصلي لطيفة لمجموعات في بيثون، يمكننا تعديل <لأ href = "https://stackoverflow.com/questions/671398/determining-if-two-or-more-summaries-are-similar / 1149292 # 1149292 "> JGS كود كما،

def jaccard(a, b):
    """
    Jaccard coefficient (/\ represents intersection), given by :
        Jaccard(A, B) = (A /\ B) / (|a|) + (|b|) - (A /\ B)
    """
    c = a.intersection(b)
    return float(len(c)) / (len(a) + len(b) - len(c))

jaccard(set("Selling a beautiful house in California"), set("Buying a beautiful crip in California"))

وليس هناك في الواقع لغة معينة لاختيار. كنت في محاولة للعثور على التشابه الدلالي. هذه هي منطقة كبيرة جدا. قد تكون مهتمة في هذه الورقة:

التدابير القائم على المعرفة المستندة إلى كوربوس والنص الدلالية التشابه

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