Ich habe an einem kleinen, persönlichen Projekt gearbeitet, das die beruflichen Fähigkeiten eines Benutzers aufgreift und basierend auf diesen Fähigkeiten die für ihn idealste Karriere vorschlägt. Ich benutze eine Datenbank mit Stellenangeboten, um dies zu erreichen. Im Moment funktioniert der Code wie folgt:
1) Verarbeiten Sie den Text jeder Stellenanzeige, um die Fähigkeiten zu extrahieren, die in der Liste aufgeführt sind
2) Kombinieren Sie für jede Karriere (z. B. "Data Analyst") den verarbeiteten Text der Stellenangebote für diese Karriere in einem Dokument
3) Berechnen Sie die TF-IDF für jede Fähigkeit in den Karriereunterlagen
Danach bin ich mir nicht sicher, welche Methode ich verwenden soll, um Karrieren basierend auf einer Liste der Fähigkeiten eines Benutzers einzustufen. Die beliebteste Methode, die ich gesehen habe, wäre, die Fähigkeiten des Benutzers ebenfalls als Dokument zu behandeln, dann die TF-IDF für das Fähigkeitendokument zu berechnen und die Ähnlichkeit zwischen dem Fähigkeitendokument und jedem zu berechnen Karrieredokument.
Dies scheint mir nicht die ideale Lösung zu sein, da die Kosinusähnlichkeit am besten zum Vergleichen von zwei Dokumenten desselben Formats verwendet wird. In diesem Fall scheint TF-IDF nicht die geeignete Metrik zu sein, um überhaupt auf die Skill-Liste des Benutzers angewendet zu werden. Wenn ein Benutzer beispielsweise seiner Liste zusätzliche Fertigkeiten hinzufügt, wird die TF für jede Fertigkeit gelöscht. In Wirklichkeit ist es mir egal, wie häufig die Fähigkeiten in der Liste der Fähigkeiten des Benutzers aufgeführt sind - es ist mir nur wichtig, dass sie über diese Fähigkeiten verfügen (und vielleicht, wie gut sie diese Fähigkeiten kennen).
Es scheint, als wäre eine bessere Metrik, Folgendes zu tun:
1) Berechnen Sie für jede Fertigkeit, die der Benutzer besitzt, die TF-IDF dieser Fertigkeit in den Laufbahnunterlagen
2) Summieren Sie für jede Karriere die TF-IDF-Ergebnisse für alle Fähigkeiten des Benutzers
3) Rang Karriere basierend auf der obigen Summe
Denke ich hier in die richtige Richtung? Wenn ja, gibt es Algorithmen, die in diese Richtung funktionieren, aber ausgefeilter sind als eine einfache Summe? Danke für die Hilfe!