Eredmény: 1 - 8 (8) összesen

Téma: Txt tartalom szétválogatása kifejezések alapján: hogyan?

  1. #1
    búgócsiga Akka logója
    Csatlakozott
    10-05-06
    Hozzászólás
    3.841
    Begyűjtött 1.442 köszönetet
    741 hozzászólásával

    Alapbeállítás Txt tartalom szétválogatása kifejezések alapján: hogyan?

    Van egy jó nagy .txt szövegem, amiben soronként egy-egy mondat szerepel.
    Szeretném adott szavak, kifejezések szerint szétválogatni a mondatokat, azaz amelyik mondatokban szerepel a pl. a "arany cipócska" kifejezés azok a mondatok kerüljenek át egy 1.txt-be, amikben a "szép erdő", azok a 2.txt-be, amikben a "rossz szomszéd", azok a 3.txt-be, stb. (persze a txt fájlok- neve lehet más is)
    Hogy lehetne ezt megoldani egyszerűen szerintetek? Én arra gondoltam, hogy beteszem valamiféle adatbázisba, és onnan keresem ki ezeket, és átmásolgatom txt-be külön a találati listát, de ez ugye nem automata, mert kb 1000 felé szeretném szétválogatni az eredeti szöveget...
    Tudtok rá valami jó megoldást?



  2. #2
    Szerkesztő djjean logója
    Csatlakozott
    11-10-15
    Hely
    Baja
    Hozzászólás
    211
    Begyűjtött 48 köszönetet
    44 hozzászólásával

    Alapbeállítás re: Txt tartalom szétválogatása kifejezések alapján: hogyan?

    Én kétféle megoldással tudnám megoldani.

    1. Adatbázis eltárolod a mondatokat, majd a keresési eredményt simán berakod egy tömmbe és kiíratod egy txt-be, php-val. (fopen,fwrite,fclose).

    2. A mondatokat berakod egy tömbe és az alapján keresel rá, hogy az adott szöveg szerepel-e benne. Most hirtelen mint az in_array vagy az array_search erre jó. Az eredményt pedig szintén txt-be íratom.

    Én az elsőt használnám, akár lehet neki egy aki admint is csinálni ahova a későbbi txt-ket fel lehet importálni stb..



  3. #3
    Bölcs benedictus logója
    Csatlakozott
    10-04-23
    Hozzászólás
    1.574
    Begyűjtött 2 köszönetet
    2 hozzászólásával

    Alapbeállítás re: Txt tartalom szétválogatása kifejezések alapján: hogyan?

    Nincs tesztelve, de innen elindulhatsz

    PHP kód:
    $kws=file("keresett_szavak.txt"FILE_IGNORE_NEW_LINES FILE_SKIP_EMPTY_LINES);
    $szov=file("nagy.txt"FILE_IGNORE_NEW_LINES FILE_SKIP_EMPTY_LINES);

    $kws=array_unique($kws);
    $szov=array_unique($szov);
    $n=0;

    foreach(
    $kws as $kw){
    $n++;
    $outp="";
    foreach(
    $szov as $sor)if (mb_stripos($sor,$kw)!==false)$outp.=$sor."\r\n";
    if (
    $outpfile_put_contents($kw.".txt",$outp);   // Ha számos fájlnevet szeretnél, $kw -t cserél $n -re




    Utoljára módosítva: benedictus által : 2012-08-11 16:57

  4. #4
    búgócsiga Akka logója
    Csatlakozott
    10-05-06
    Hozzászólás
    3.841
    Begyűjtött 1.442 köszönetet
    741 hozzászólásával

    Alapbeállítás re: Txt tartalom szétválogatása kifejezések alapján: hogyan?

    Éééés működik és működik és működik... hihetetlen vagy Benedictus
    Teljesen jó, amit csinál...



  5. #5
    Hekker 0xFF logója
    Csatlakozott
    09-08-21
    Hozzászólás
    1.079
    Begyűjtött 168 köszönetet
    118 hozzászólásával

    Alapbeállítás re: Txt tartalom szétválogatása kifejezések alapján: hogyan?

    grep
    Linuxon alapból van
    Windowson Cygwin

    Kód:
    [input.txt]
    Van egy jó nagy .txt szövegem
    kerüljenek át egy 1.txt-be, amikben 
    de ez ugye nem automata, mert kb 1000 felé szeretném 
    Tudtok rá valami jó megoldást?
    
    $ cat input.txt | grep 'txt' > output.txt
    
    [output.txt]
    Van egy jó nagy .txt szövegem
    kerüljenek át egy 1.txt-be, amikben




  6. #6
    búgócsiga Akka logója
    Csatlakozott
    10-05-06
    Hozzászólás
    3.841
    Begyűjtött 1.442 köszönetet
    741 hozzászólásával

    Alapbeállítás re: Txt tartalom szétválogatása kifejezések alapján: hogyan?

    Idézet benedictus eredeti hozzászólása Hozzászólás megtekintése
    Nincs tesztelve, de innen elindulhatsz

    PHP kód:
    $kws=file("keresett_szavak.txt"FILE_IGNORE_NEW_LINES FILE_SKIP_EMPTY_LINES);
    $szov=file("nagy.txt"FILE_IGNORE_NEW_LINES FILE_SKIP_EMPTY_LINES);

    $kws=array_unique($kws);
    $szov=array_unique($szov);
    $n=0;

    foreach(
    $kws as $kw){
    $n++;
    $outp="";
    foreach(
    $szov as $sor)if (mb_stripos($sor,$kw)!==false)$outp.=$sor."\r\n";
    if (
    $outpfile_put_contents($kw.".txt",$outp);   // Ha számos fájlnevet szeretnél, $kw -t cserél $n -re

    Azt bele lehet valahogy mahinálni a kódba, hogy az adott keresett szó benne legyen az első sorban a hozzá tartozó doksiban?
    A számos megoldást használnám, és a tartalomban így látni lehetne, hogy ez most mi is éppen...



  7. #7
    búgócsiga Akka logója
    Csatlakozott
    10-05-06
    Hozzászólás
    3.841
    Begyűjtött 1.442 köszönetet
    741 hozzászólásával

    Alapbeállítás re: Txt tartalom szétválogatása kifejezések alapján: hogyan?

    Update: sikerült megoldani:
    ehelyett:
    PHP kód:
    $outp=""
    ez kellett bele:
    PHP kód:
    $outp=($kw."\r\n"); 




  8. #8
    Szerkesztő Luxi logója
    Csatlakozott
    08-08-27
    Hely
    Debrecen
    Hozzászólás
    212
    Begyűjtött 10 köszönetet
    10 hozzászólásával

    Alapbeállítás re: Txt tartalom szétválogatása kifejezések alapján: hogyan?

    Ezzel most nem leszel kisegítve, de effajta szövegfeldolgozásra én Apache SolR-t használok.

    Döbbenetesen jó cucc, alkalmas szövegfeldolgozásra, sztemmelésre, keresésre, facet-alapú szűrésre, és még nagyon sokmindenre.
    Igaz, hogy ráment két hónapom mire megtanultam rendesen használni, de azóta kereséshez, szövegfeldogozáshoz szóba sem jöhet más.

    Még mindig ki vagyok akadva tőle, mennyire eltalálták - bármire, amire eddig szükségem volt (egyetlen nyakatekert elképzelésemtől eltekintve) out-of-the-box tudta.

    Mindezt ingyen, open source, és fasorba nincs hozzá képest pl. az MSSQL FTS, amivel éveken át szenvedtem korábban.


    Bocs, ez kikívánkozott most belőlem

    Üdv, Luxi



Könyvjelzők

Hozzászólás szabályai

  • Új témákat nem hozhatsz létre
  • Válaszokat nem küldhetsz
  • Fájlokat nem csatolhatsz
  • A hozzászólásaidat nem módosíthatod
  •