Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Polskie lorem ipsum, o ile tak to można nazwać :)
5w155
post
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 27.01.2009

Ostrzeżenie: (0%)
-----


Witam!
Mam za zadanie zrobić generator tekstów w takim stylu, że musi on tworzyć sensowne zdania. Baza ma przechowywać wyrazy posegregowane w części mowy i w php trzeba stworzyć z nich sensowne zdania.
Potrzebuję pomysłów, nie gotowych rozwiązań.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Ale właśnie Lorem ipsum to jest po to, żeby tworzyć bezsensowne zdania
http://pl.wikipedia.org/wiki/Lorem_ipsum


--------------------
Go to the top of the page
+Quote Post
blooregard
post
Post #3


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




  1. <?php
  2. $rzeczownik = array('Ala' , 'Zosia' , 'radio' , 'lodówka' , 'telefon' , 'krowa' , 'prosiak');
  3. $czasownik =array('poszła' , 'pobiegła' , 'pojechała' , 'zjadła' , 'wypiła');
  4. $zwsk = array('do' , 'w' , 'na' , 'od' , 'ponad' , 'za');
  5. $przym = array('długi' , 'krótki' , 'mały' , 'duży' , 'niebieski' , 'zielony');
  6.  
  7. echo $rzeczownik[rand(0,count($rzeczownik)-1)] . ' ' . $czasownik[rand(0,count($czasownik)-1)] .' ' .
  8. $zwsk[rand(0,count($zwsk)-1)] . ' ' .$przym[rand(0,count($przym)-1)]
  9. .' ' .$rzeczownik[rand(0,count($rzeczownik)-1)];


Przykład:
Cytat
Zosia zjadła za duży telefon


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
Zyx
post
Post #4





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

Ostrzeżenie: (0%)
-----


Patent z mojego chatbota:

mamy sobie graf skierowany z dwoma wyróżnionymi wierzchołkami $ oraz #. Przyjmujemy, że wierzchołki to wyrazy oraz wszystkie ścieżki w tym grafie zaczynają się w $, a kończą w #, zatem ci dwaj delikwenci to specjalne symbole oznaczające początek i koniec zdania. Jeśli z wyrazu A prowadzi strzałka do wyrazu B, to znaczy, że po wyrazie A może pojawić się wyraz B. Ponadto, z wyrazu A do B może prowadzić więcej niż jedna strzałka. Algorytm polega na tym, że ustawiamy się w $ i następnie losujemy ścieżkę do #, a napotkane na niej wierzchołki łączymy w zdanie.

Przykład:
$ -> ala
$ -> ola
ala -> ma
ala -> widziała
ala -> jadła
ola -> widziała
ola -> jadła
ma -> jabłko
ma -> kota
jadła -> jabłko
widziała -> kota
widziała -> jabłko
kota -> #
jabłko -> #

Przykładowe ścieżki-zdania:
$ -> ala -> ma -> kota -> #
$ -> ala -> jadła -> jabłko -> #
$ -> ola -> widziała -> kota -> #

Taki graf ma własność uczenia się, tzn. możemy wziąć istniejące zdanie, rozbić je na wyrazy i utworzyć połączenia w grafie. Przykładowo, możemy zrobić zdanie "ala jadła kota". Rozbijamy je na wyrazy i dodajemy nowe połączenia:
$ -> ala
ala -> jadła
jadła -> kota (tego nie ma)
kota -> #

Pamiętając, że między wyrazami A i B może prowadzić więcej niż jedna strzałka, graf zdobywa też informacje, które połączenia są częściej wykorzystywane, a które rzadziej. Dzięki temu podczas losowania często używane zwroty są "faworyzowane".

Algorytm jest niezwykle debilny, ale po nafaszerowaniu grafu odpowiednią ilością sensownych zdań (tzn. nie za małą i nie za dużą, bo się totalny random zrobi) generuje naprawdę ciekawe wyniki. Jeśli by go wzbogacić o parę informacji gramatycznych niezbędnych do utrzymania związku zgody, rządu i przynależności w zdaniach (umieszczanych w grafie), wyniki powinny Cię usatysfakcjonować.


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 06:29