2
Was ich versuche zu tun ist, einen Algorithmus zu finden, den ich implementieren kann, um "intelligente" Vorschläge für Menschen zu generieren, durch den Vergleich von Nachrichten an Nachrichten von ihren Kollegen gesendet.

Algorithmus für die Gewinnung von Intelligenz aus Nachrichten

Zum Beispiel sendet Person A eine Nachricht an Person B, die über Obj1 spricht. Wenn Person C eine Nachricht an Person D über Obj1 sendet, wird sie bemerken, dass sie über die gleichen Dinge spricht, und kann vorschlagen, dass Person A mit Person C spricht.

Ich habe das Sammeln der Statistiken implementiert, um die Erwähnungen einzufangen, die Leute haben üblich, aber nicht wissen, welchen Algorithmus zu verwenden, um dies zu analysieren.

Irgendwelche Vorschläge? (Ich hoffe, das macht genug Sinn)

+1

Wenn Sie nicht gerade einen (wirklich guten) Parser für natürliche Sprache erstellen wollen, werden Sie am Ende mit etwas konfrontiert, das zufällig einige schlaue Vorschläge macht und den Benutzer sonst nur mit Unsinn belästigt. – delnan

+1

Die Wörter/Phrasen, mit denen ich Leute verlinken möchte, stammen aus einer festen Liste mit bestimmten Schlüsselwörtern. Daher brauche ich keinen Parser für natürliche Sprache. Habe das ursprünglich nicht wirklich deutlich gemacht! – Freddie

Antwort

0

einen Blick auf clustering algorithms

und k-means oder k-nearest neighbours für einen schnellen Start

Wie viele Daten Sie haben? Je mehr desto besser. Es gibt viele Ansätze für dieses Problem. Sie können zum Beispiel annehmen, dass alle Benutzer zu einem gewissen Grad einander ähnlich sind und was Sie tun möchten, ist für jeden Benutzer die ähnlichsten zu finden. Vektorraum, Kosinusähnlichkeit, wird Ihnen schnelle Ergebnisse geben. Geben Sie einige weitere Informationen darüber, was Sie erreichen möchten.

0

Dies ist genau das gleiche Problem, mit dem Twitter kämpft. Sie könnten einen Job dort beenden, wenn Sie das knacken;)

Auf ernster Anmerkung, die zurückkommt, könnte man einige grobe Maßnahmen (d. H. Heuristisch basiert) verwenden, um so etwas zu tun, aber es hat einen großen Fehlerprozentsatz. Wie Delnan im Kommentar sagte.

NLP ist eine sichere Wette. Beachten Sie, dass die Verwendung von NLP auch einen Fehler% hat, aber es ist viel genauer als jede Heuristik, die Sie verwenden würden. Wenn Sie Python verwenden, würde ich dieses Toolkit empfehlen, ich benutze es hin und wieder - NLP.

Für andere Sprachen bin ich sicher, dass es Pakete gibt, die Ihnen in dieser Hinsicht helfen werden.

UPDATE1: Wenn Sie eine Möglichkeit für die Benutzer haben, ihre Nachrichten zu markieren (wie Stackoverflow tut), könnten Sie dieses Problem umgehen NLP. Dann könnten Sie einfach den Schnittpunkt der Tags der beiden Nachrichten nehmen, um zu sehen, ob es eine Gemeinsamkeit gibt & schlagen einige Top-Artikel für die gemeinsamen Elemente vor.

Aber es gibt andere Probleme, mit denen Sie umgehen müssen - machen Sie Tags obligatorisch, und Sie müssen sicher sein, dass die Benutzer tatsächlich korrekte Tags usw. eingeben ... Aber das vereinfacht Ihr Problem sehr.

UPDATE2:. Als Q aktualisiert wurde - Da Sie bestimmte Keywords/Phrasen haben nur die Sie interessieren Dies vereinfacht Art davon. Sie müssten jeden Ihrer Nachricht erhalten, teilen Sie es in Wörter, dann stem jedes Wort. Nach dem Abstempeln überschneiden Sie diese Menge mit der Menge der Schlüsselwörter, die Sie haben. Du bekommst ein Set (S1). Mach dasselbe mit der zweiten Nachricht, du bekommst eine Menge (S2). Schnitt S1, S2. Wenn Sie etwas finden, ist es üblich, Bingo! Ein Thema ist häufig zwischen message1, message2. sonst nichts.