![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 5 Dołączył: 10.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Elo jęsli mam plik z tysiącami wyrazami, to da się jakiś program anpisać, który wyraz się najczęsciej powtarza?
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Da się... wczytujesz każdą linię pliku do tablicy... potem przelatujesz po tej tablicy i sprawdzasz każdy element za pomocą funkcji count" title="Zobacz w manualu PHP" target="_manual(array_keys" title="Zobacz w manualu PHP" target="_manual) i wyniki wpisujesz do innej tablicy w postaci $tablica[]=array(nazwa elementu, liczba wystąpień) jednocześnie usuwając te elementy z pierwszej tablicy... w $tablicy będziesz elementy z dwoma własnościami, wyrazem i liczbą wystąpień... po drodze jeszcze będziesz musiał użyć referencji w jednym miejscu, ale to już pozostawiam tobie do obadania...
![]() Pewnie to nie jest najbardziej wydajny sposób ale tylko taki mi przyszedł do głowy... Ten post edytował nowotny 9.02.2008, 22:41:31 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
lepiej wykorzystać array_count_values(), np.
można tam dodać jeszcze array_filter() od filtrowania np. pustych wartości oraz spójników itp. -------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Też to rozważałem ale co jeśli wyrazy zawierają znaki które są niedozwolone jako indeksy elementów...?
Ten post edytował nowotny 9.02.2008, 23:14:18 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 5 Dołączył: 10.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
jestem troche zielony z php;/
Czy mogłby mi ktoś dać gotowy kod do tego? założmy, że mam te wyrazy w pliku wyrazy.txt (oczywiście każdy wyraz mam w osobnym wierszu) ![]() najlepiej jak to potrafię poprawić to coś takiego: Kod <?php
$contents = file_get_contents($file); $file = file("wyrazy.txt"); $words = explode(' ', $contents); // wczytanie do tablicy wszystkich wyrazów $counts = array_count_values($words); // tablica z ilościamo wystąpień rsort($counts); // sortowanie od najwięcej wystąpień do najmniej // oczytujemy pierwszą wartość (najwięcej wystąpień) reset($counts); echo key($counts); // słowo echo current($counts); ilość wystąpień ?> Ten post edytował mimol 10.02.2008, 13:04:58 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 115 Pomógł: 12 Dołączył: 11.01.2005 Skąd: Zduńska Wola Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 102 Pomógł: 10 Dołączył: 25.12.2005 Skąd: Ruda Śląska Ostrzeżenie: (0%) ![]() ![]() |
@sopel twoj skrypt chyba jednak nie zrobi tego
jestes pewny ze to wyswietli wyraz a nie numer klucza ? @mimol ja taka funkcje robilem na mysql bo jakos chyba latwiej, ale chetnei skorzystam z rozwiazania jak bedzie tu podane, a jesli chcesz skorzystac z tego na mysql to powiedz i podam kod -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 5 Dołączył: 10.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
ale czy bedę umiał masowo dodać te moje wyrazy do bazy??
Czy będę musiał pojedyńczo dodawać te wyrazy do bazy..? |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 115 Pomógł: 12 Dołączył: 11.01.2005 Skąd: Zduńska Wola Ostrzeżenie: (0%) ![]() ![]() |
będziesz musiał chyba ułożyć pętlę do dodawania tych słówek, chyba, że jest sposób na dodanie do bazy kilku rekordów jednym zapytaniem, ale raczej wątpie
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Cytat('mimol') jestem troche zielony z php;/ Czy mogłby mi ktoś dać gotowy kod do tego? nie... zwłaszcza, że praktycznie go ode mnie dostałeś. jeśli nie działa to napisz w czym problem. jeśli nie potrafisz ssobie z nim poradzić to zapraszam do tego działu. @sopel twoj skrypt chyba jednak nie zrobi tego (...) jestes pewny ze to wyswietli wyraz a nie numer klucza ? masz rację, to wyświetli klucz tablicy... tylko że kluczem jest właśnie ten wyraz. ;-) sprawdź sobie co zwraca array_count_values" title="Zobacz w manualu PHP" target="_manual. -------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.08.2025 - 03:30 |