singular und plural formen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
PauleJS
User
Beiträge: 34
Registriert: Freitag 22. Oktober 2010, 14:58

Mittwoch 9. Februar 2011, 15:11

gibt es eine möglichkeit in python singular und plural formen von wörtern zu erkennen und zu erstellen?
wenn singular erkannt wird, soll die plural form erstellt werden und umgekehrt!

dies gilt nur für deutsche wörter!
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Mittwoch 9. Februar 2011, 15:21

Wie willst du das machen? Speziell im deutschen? In englisch geht das gerade noch, weil für die meisten Wörter einfach ein "s" angehängt wird. Aus Car wird Cars, aus Apple wird Apples usw. Und selbst da kann man VERMUTEN, dass ein Wort, das auf "s" endet, eine plural Form sein könnte. Eine Garantie hat man nicht.

Im deutschen ist das IMHO völlig unmöglich, es sei denn, man erstellt eine vollständige Datenbank. Im deutschen gibt es keine festgelegten Regeln für eine Plural Form. Manche Wörter enden auf "n" (Straße, Straßen), andere werden auch in der Mitte anders geschrieben (Wort, Wörter), wieder andere werden sowohl in Singular als auch Plural gleich geschrieben (der Computer, die Computer)
PauleJS
User
Beiträge: 34
Registriert: Freitag 22. Oktober 2010, 14:58

Mittwoch 9. Februar 2011, 15:25

hast ja recht! hab mir nur gedacht das man viellt für bestimmte wortgruppen das ganze etwas einschränken kann

wörter die auf "ung", "ing", usw. könnte man zusammen fassen
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Mittwoch 9. Februar 2011, 15:35

Sicherlich kann man so etwas programmieren. Im ersten Schritt musst die Regeln zur Pluralbildung umsetzen. Da gibt es sicherlich einige. Allerdings gibt es auch recht viele Ausnahmen von diesen Regeln. An der Stelle wird es dann kompliziert. Probiere es doch einfach und schau inwieweit das umsetzbar ist.

Grüße
Gerrit
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Mittwoch 9. Februar 2011, 15:43

Lies Dich doch grundsätzlich in das Thema "Stemming" ein:
http://de.wikipedia.org/wiki/Stemming
http://tartarus.org/~martin/PorterStemmer/

Ich denke das wäre ein guter Ansatz für das Problem. Iirc gabs da fürs Englische auch eine Python-Implementierung (die aber aufgrund des Alters und generell ziemlich hässlich ist).
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Mittwoch 9. Februar 2011, 15:45

Sicher gibt es Regeln, aber bring die mal einem Computerprogramm bei, wann welche Regel anzuwenden ist.
PauleJS
User
Beiträge: 34
Registriert: Freitag 22. Oktober 2010, 14:58

Mittwoch 9. Februar 2011, 16:01

oja mit dem thema kann man sich laaaange beschäftigen! ich probier mal wie weit ich komme

danke für die tipps!
DasIch
User
Beiträge: 2562
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Mittwoch 9. Februar 2011, 19:47

burli hat geschrieben:Sicher gibt es Regeln, aber bring die mal einem Computerprogramm bei, wann welche Regel anzuwenden ist.
Was glaubst du wie eine Suchmaschine funktioniert?
BlackJack

Mittwoch 9. Februar 2011, 20:55

@DasIch: Suchmaschinen machen alles mögliche, diese Gegenfrage ist also ziemlich schwammig. Was glaubst Du denn was die machen? Welche überhaupt? Belege?
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Mittwoch 9. Februar 2011, 22:03

DasIch hat geschrieben:Was glaubst du wie eine Suchmaschine funktioniert?
Die suchen nicht nach Singular oder Plural. Die nutzen Funktionen wie soundex oder sowas in der Richtung. Oder die haben tatsächlich Wortlisten
lunar

Mittwoch 9. Februar 2011, 22:11

@burli: Auch für Dich gilt, was BlackJack schon DasIch gesagt hat: Ohne Belege sind solche Mutmaßungen wenig wert.
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Donnerstag 10. Februar 2011, 09:03

burli hat geschrieben:In englisch geht das gerade noch, weil für die meisten Wörter einfach ein "s" angehängt wird.
This sounds easy, but is in fact quite tricky.
Da klappt das mit dem s schon nicht mehr. Eine Lösung müsste IMHO immer den Kontext betrachten.

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Donnerstag 10. Februar 2011, 10:21

mutetella hat geschrieben:This sounds easy, but is in fact quite tricky.
Da klappt das mit dem s schon nicht mehr. Eine Lösung müsste IMHO immer den Kontext betrachten.
Man sollte schon davon ausgehen, dass das Wort, das man betrachtet, ein Nomen ist, sonst wird's in der Tat schwierig. Rails hat Methoden, um Worte zu pluralisieren oder singularisieren, und das scheint mit Englisch auch sehr gut zu klappen. Aber da ist auch die Vorraussetzung, dass du ein Nomen hast und weisst, ob du von Singular nach Plural moechtest oder umgekehrt.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Donnerstag 10. Februar 2011, 10:53

Rebecca hat geschrieben:Aber da ist auch die Vorraussetzung, dass du ... weisst, ...
Welchen Sinn macht ein Programm zur Erzeugung von Singular<->Plural, wenn es elementare Informationen dafür von mir benötigt? :K
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Donnerstag 10. Februar 2011, 14:02

Wenn du z.B. in einem UI ausgeben willst, wieviele Datensaetze eine Suchanfrage ergibt und dann entsprechend Plural oder Singular benutzen willst? A la "Found %s user(s)." (Rails benutzt das auch ganz viel, um Model-Namen (singular) den richtigen Tabellen-Namen (Plural) zuzuordnen etc.)

Aber ich habe mich auch geirrt, du musst nur wissen dass es ein Nomen ist, egal ob Singular oder Plural.

Code: Alles auswählen

irb(main):012:0* 'user'.pluralize
=> "users"
irb(main):013:0> 'users'.pluralize
=> "users"
irb(main):014:0> 'index'.pluralize
=> "indices"
irb(main):015:0> 'summary'.pluralize
=> "summaries"
Ich kann mir andersherum gerade keinen Anwendungsfall vorstellen, bei dem man die Vorgabe nicht hat; von Textanalysen vielleicht mal abgesehen.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Antworten