Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> filtr do parsera treści
thecgla
post 27.08.2015, 15:04:58
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 27.08.2015

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


Witam, Pracuję nad projektem parsera treści. Chciałbym by odróżniał tekst strony z artykułem od bezwartościowych tagów lub arkuszy stylu. Coś w rodzaju robota wyszukiwarkowego. Myślę nad użyciem funkcji która by liczyła wyrazy, czyli liczba liter od 1-16 spacja. I jeśli się to powtarza co najmniej 10 razy to przechodzi. Ale nie wiem jak to ugryźć.

Próbowałem ze spójnikami ale dziwnie to wychodzi, ich ilości się kumulują ze względu na krzaczki z polskich znaków w treści.

To co napisałem działa częściowo, ale chciałbym by się wyświetlały same artykuły, a filtruje to może z 10% śmieci. Czyściłem też baze danych pod względem występowania konkretnych słów. Nie wiem jak to dalej rozwinąć. I jak używać zachodnich spójników typu "if, or, and,"





  1. $polskiespojniki =array(i, oraz, lecz, albo, czy, lub, ani, czyli, dlatego, zatem, bo, natomiast, że, gdyż, ponieważ, jeśli, jeżeli, bądź);
  2. //$zachodniespojniki=array(and, or, but, if, unless, that, until, when, while, where, after, before, because, both, either, even);
  3.  
  4.  
  5.  
  6.  
  7. //funkcja liczaca dany spojnik
  8. function Policzspojniki($polskiespojniki, $string)
  9. {
  10. $licznikspojnikow=0;
  11. $iloscprzecinkow=0;
  12. foreach ($polskiespojniki as $value) {
  13. $iloscprzecinkow=0;
  14. echo $value;
  15. echo"1";
  16. $spojnik = $value;
  17. $str = $string;
  18. $a = substr_count($str, $value);
  19. //zakomentarzowane dzialanie testowe
  20.  
  21. //echo $spojnik;
  22. //echo $a;
  23. //echo "</br>";
  24. $licznikspojnikow = $licznikspojnikow + $a;
  25. }
  26. //licznik przecinkow
  27. $iloscprzecinkow = substr_count($string, ",");
  28. echo $iloscprzecinkow;
  29. // licznik spojnikow
  30. echo 'liczenie spojnikow na stronie ';
  31. echo 'suma-';
  32. echo $licznikspojnikow;
  33. if($licznikspojnikow >3 or $iloscprzecinkow >10)
  34. return true;
  35.  
  36. else
  37. return false;
  38. $iloscprzecinkow=0;
  39. $licznikspojnikow=0;
  40.  
  41.  
  42. }
  43.  
  44. if (Policzspojniki($polskiespojniki, $string))
  45. {
  46. echo 'wiecej niż 3 spojniki lub 5 przecinkow';
  47.  
  48.  
  49.  
  50. }
  51. else {
  52. echo 'mniej niż 3 spojniki lub 5 przecinkow odrzucamy';
  53. }
  54.  
  55. ?>


Ten post edytował thecgla 27.08.2015, 15:06:14
Go to the top of the page
+Quote Post
kartin
post 27.08.2015, 15:19:15
Post #2





Grupa: Zarejestrowani
Postów: 246
Pomógł: 79
Dołączył: 25.05.2010

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


Jak chcesz treść strony bez znaczników HTML to użyj np. strip_tags() i ewentualnie przed użyciem usuń skrypty oraz style np. za pomocą preg_replace()


--------------------
Jeśli ten post pomógł to kliknij przycisk po lewej stronie.
Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ...
Go to the top of the page
+Quote Post
thecgla
post 27.08.2015, 15:47:09
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 27.08.2015

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


chodzi o to by kwalifikowałą się tylko ta która zawiera określoną treść. Nie wiem w jaki sposób napisać funkcję by sprawdzała czy znajdują się konkretne zdania w treści czyli:

wyraz(1-24litery)-spacja-wyraz(1-24litery) całość n razy zakończona kropką. A pasujące do tego schematu które mają co najmniej 3 lub 4 zdania kwalifokować do dalszego filtra który wskazałem wcześniej czyli spójniki polskie i angielskie.

Nie próbowałem testować na angielskich spójnikach ale jak pracuje na netbeans to dostaje monit o niedozwolonych słowach. Jest sens drążyć temat ze spójnikami czy lepiej dać sobie spokój i napisać coś prostszego. nie jestem zaawansowanym programistą. Opieram się na przykładach z internetu.

chodzi tez o to by zachować oryginalną treść, strip_tags zmienia strukturę tekstu.

style usuwam po adresach z bazy które zawierają xml png css itp. (zostaje 10% typu style.css?ver2003 - akceptowalne)

To coś w rodzaju nakładki na wyszukiwarkę internetową rozszerzająca możliwości wyszukiwania na stronach i linkach prowadzących ze strony prezentująca dane zbiorcze. Filtruje dokładniej wyniki generowane przez wyszukiwarkę internetową.

Ten post edytował thecgla 27.08.2015, 15:55:53
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 Wersja Lo-Fi Aktualny czas: 27.05.2025 - 21:30