Mam tekst piosenki. (.tekst)
Mam też teksty do 50 innych piosenek.
Szukam sposobu na przeanalizowanie / przeszukanie tych 50 tekstów piosenek z tekstami do pierwszej piosenki i stwierdzenie, który z 50 jest najbardziej podobny do pierwszego (na podstawie wspólnych słów / słownictwa).
Przepraszam za wypowiedzi laika - to nie jest moja dziedzina wiedzy (!)
Każda pomoc lub wskazówki byłyby mile widziane
grep
textwrangler
bbedit
ioloiol
źródło
źródło
Odpowiedzi:
Oto moje rozwiązanie. Przypuszczałem, że zależy ci tylko na tym, ile słów pasuje raczej do tego, ile razy pasują (np. „Baby” 5 razy w obu utworach jest warte 5 razy więcej punktów).
Pierwszy:
To zamienia wszystkie znaki nowej linii w spacje, usuwa wszystkie znaki niealfanumeryczne (przecinki), usuwa wszelkie podwójne spacje, umieszcza każde słowo w oddzielnej linii, sortuje je i usuwa duplikaty linii.
Musisz to zrobić dla wszystkich utworów, które chcesz porównać, a następnie:
To da ci liczbę dopasowanych słów.
Próbowałem kilku przykładów:
Maroon 5's Animals i Justin Bieber's Baby dzielą 29 słów.
Maroon 5's Animals i Opeth's Grand Conjuration dzielą 10 słów.
Takie są oczekiwane wyniki.
Również tutaj możesz porównać to z innymi plikami tekstowymi:
Gdzie „songname1words.txt” to nazwa pliku, z którym chcesz je porównać.
To porównuje wszystkie inne pliki tekstowe z tym jednym, pomijając porównywanie się z samym sobą, następnie sortuje je wszystkie według wyniku, tak że mecz numer 1 jest na górze.
Daje takie wyniki:
29 - bieberwords.txt
10 - opethwords.txt
źródło