WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- Stichwörter - "Wichtigste Wörter" aus einem Text filtern

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » Stichwörter - "Wichtigste Wörter" aus einem Text filtern - 23 Nov 2024 Antworten
im Forum für Webhosting Homepage gefunden:
Stichwörter - "Wichtigste Wörter" aus einem Text filtern
Korre
Fachidiot
Threadstarter




Beiträge: 147

Hallo,
hat jemand einen Lösungsansatz (oder eine fertige Usmetzung) parat, wie man es realisieren könnte, dass ein Script aus einem Text (der beispielsweise aus einer Datei eingelesen oder als Variable übergeben wird - völlig egal) die z.B. drei "wichtigsten" Wörter heraus findet, die dann (zumindest mit hoher Wahrscheinlichkeit) etwas mit dem Text zu tun haben sollten...
Zweck der Sache ist es, zu einem Text weitere passende Texte zu finden.

Einige erste Kriterien über die ich nachgedacht habe wären z.B.
- Wort muss eine gewisse Länge haben (damit werden die meisten Standard- und Füllwörter herausgefiltert)
- Wort muss mit einem Großbuchstaben beginnen (Substantive dürften aussagekräftiger sein als Verben, Konjunktionen etc fallen raus...)
- Worthäufigkeit im Text des Wortes (was z.B. nach der obrigen Filterung noch dreimal oder so vorkommt, scheint wirklich wichtig zu sein...)

Das reicht natürlich nicht um ein gescheites Ergebis zu bekommen, weitere Ideen?


  Profil   Editieren   Zitieren
einstein
Quasselstrippe




Beiträge: 241

So ganz simpel wird die Sache wohl nicht, aber es klingt verdächtig nach RegExps

Folgende RegExps bräuchtest du:

[A-Z]{1} => soll mit einem Großbuchstaben beginnen
[a-zäöüß]{4,} => gefolgt von 4 oder mehr Kleinbuchstaben
um alle Ergebniss anzeigen zu lassen müsstest du
preg_match_all() verwenden:

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8:
$str = "... Dein Text ...";
$regexp = "/([A-ZÄÖÜ]{1})([a-zäöüß]{4,})/m";
$num = preg_match_all($regexp,$str,$result);
for($i = 0; $i<$num;$i++) {
  $word[md5($result[0][$i])]['count'] += 1;
  $word[md5($result[0][$i])]['value'] = $result[0][$i];
}

Als Ergebnis hättest du dann einen Array $word mit
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9:
Array word (
 array md5-hash (
    count => Häufigkeit des Wortes
    value => Wort
 )
...
)

Zu guter letzt müsstest du dann den Array nach den Count sortieren, und die 3 ersten Vorkommen wären dann dein Ergebnis.

Das ist nur ein Ansatz von mir, den ich nicht getestet habe. Es gibt da auch noch eine ganze Reihe Schwachstellen: Wörter die z.B. Bindestriche enthalten werden nicht erfasst (es gelten nur Buchstaben), Wörter die nur ähnlich sind (Plural/Singular, etc) werden als mehrere Wörter gesehen.

Gruß,
jan

  Profil   Editieren   Zitieren
Korre
Fachidiot
Threadstarter




Beiträge: 147

Also danke erstmal Jan für deine recht umfangreiche Antwort. Mein Problem ist jetzt aber wengier die technische Umsetzung der bereits aufgelisteten Kriterien, sonder vielmehr, dasa ich weitere aussagekräftige Kriterien suche, um ein gescheites Ergebnis zu erhalten... Also wenn da noch einer ein paar gute Vorschläge hat, die nicht darauf hinaus laufen, dass ich ein Wörterbuch mit einer "Wichtigkeitsstufe für jedes Wort" anlegen muss :D, immer her damit...

Diese Nachricht wurde geändert von: Korre
  Profil   Editieren   Zitieren
einstein
Quasselstrippe




Beiträge: 241

Ich denke, dass du kaum solch eine Kriterienliste zuverlässig aufstellen kannst. Die Meta-Tag Methode ist die Zuverlässigste, aber die scheinst du ja gerade umgehen zu wollen.
Du könntest auch noch die Worte deiner Ergebnis-Liste auf Ähnlichkeit überprüfen und somit nochmal das Ranking einzelner Wörter nach oben pushen, oder auch die Wörter mit der Überschrift des Textes (falls vorhanden) vergleichen und so nocheinmal das Ranking beeinflussen.
Aber soetwas, dass alle wichtigen Wörter mit "W" anfangen und mit "n" aufhören gibts ja leider nicht.
Auch die vorgeschriebene Wortlänge wird dir gerade bei weit verbreiteten Abkürzungen Probleme bereiten. So würden Artikel in denen zig mal "PHP" vorkommt nie miteinander verknüpft.
Wichtigkeitsstufe für jedes Wort klingt doch interessant ;)

Diese Nachricht wurde geändert von: einstein
  Profil   Editieren   Zitieren
NetDrag
Foren-Team




Beiträge: 442

was du bräuchtest wäre eine implementation der Bayes Wahrscheinlichkeit.
Ich schreib gerade meine diss über bayes, aber eine php implementation ist mir noch nicht untergekommen.

Viele neue Spamfilter verwenden auch Bayes.

---
We are born wet, naked and hungry, then things got worse!

  Profil   Website   Editieren   Zitieren
einstein
Quasselstrippe




Beiträge: 241

Ich habe beim Stöbern eine Software (kommerziell) zu diesem Thema gefunden:

http://www.digicol.de/pages/main.php?lang=ger&page=overview
bzw. die Demo http://rambo.digicol.de/premiere/demo.php
Auf Basis von ca. 500 Millionen Wissensfragmenten analysiert Elektra digitale Informationen. Komplexe heuristische, statistische, semantische und linguistische Verfahren analysieren die wesentlichen inhaltlichen Merkmale eines Dokumentes und ordnen die signifikanten Thesaurusbegriffe und Schlagworte diesen automatisch zu.

Elektra basiert auf einem mathematisch-statistischen Ansatz. Unter Verwendung eines vorhandenen Thesaurus mit 1.370 Deskriptoren, oder eines individuell angepassten Thesaurus wertet Elektra sowohl Einzelbegriffe als auch Phrasen aus. Die Firmen- und Organisationsnamen einschließlich der Synonyme umfassen ca. 20.000 Einträge. Die Namensliste für Personen beinhaltet ca. 140.000 Einträge.
Sofern neue Namen hinzukommen, werden diese von Elektra automatisch erfasst und ausgewiesen. Entscheidend für qualitativ hochwertige Ergebnisse ist die permanente Pflege der Wissensbasen.


Soviel zu den Kriterien

  Profil   Editieren   Zitieren
Korre
Fachidiot
Threadstarter




Beiträge: 147

Das Teil hat was...

  Profil   Editieren   Zitieren
 

Antworten
Forum » PHP & MySQL » Stichwörter - "Wichtigste Wörter" aus einem Text filtern

Aktuelle Beiträge zur Hilfe im Forum für Homepage - Stichwörter - "Wichtigste Wörter" aus einem Text filtern im Forum Homepage Hosting AntwortenLetztes Posting
Cybersicherheit für Unternehmen
in "PHP & MySQL"
3 18.11.2024 14:05 von Gaswer
Wirtschaftslage in der Ukraine
in "PHP & MySQL"
3 22.10.2024 15:04 von Gaswer
Rangliste (Ohne Mysql) (Kompliziertes Ordner System)
in "PHP & MySQL"
3 19.07.2021 06:00 von newtopblog
kleines problem mit phpadmin
in "PHP & MySQL"
5 11.04.2021 22:22 von Zavylon
Counter mit PHP
in "PHP & MySQL"
4 22.03.2021 16:29 von Robeni
Fehlermeldung beim Importieren der Datenbank in phpmyadmin
in "PHP & MySQL"
0 02.08.2019 22:14 von iFuchs
CMS für Online Shop
in "PHP & MySQL"
18 26.05.2019 13:29 von raiserle
Regestrierungproblem
in "PHP & MySQL"
3 28.11.2018 13:20 von norbertofahey
PHP Datum ausgeben?
in "PHP & MySQL"
1 19.10.2018 10:04 von Klaus1973
PHP befehl ausführen
in "PHP & MySQL"
11 16.08.2018 09:08 von Klaus1973
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji



Besucher : 8127854    Heute : 249     Gestern : 761     Online : 186     23.11.2024    10:30      1 Besucher in den letzten 60 Sekunden        
alle 60.00 Sekunden ein neuer Besucher
Nach oben