homeSoftwaredesign Softwaredesign: Suchen im Zitatenschatz Prof. Dr. Uwe Schmidt FH Wedel

Suchen im Zitatenschatz


weiter

bot bis vor einiger Zeit einen großen Fundus an wichtigen Aussagen von wichtigen Personen aus der Welt des Fußballs. Die Seite ist aber jetzt leider gesperrt. Diese Aussagen sind sprachlich häufig so interessant und kreativ, dass es sich lohnt, hierüber einen kleinen Suchindex aufzubauen.

weiter

Ein kleiner Index über wichtige Worte aus der Welt des Fußballs

   1module IndexExample
   2where
   3
   4import           Data.Char
   5import           Data.List
   6
   7import qualified Data.Set  as S
   8
   9import           Index
  10
  11import           Zitate
  12
  13-- ------------------------------------------------------------
  14--
  15-- der Index-Aufbau
  16
  17zitateIx        :: Index
  18zitateIx        = foldr (indexDocument' istVonInteresse) emptyIndex
  19                  .
  20                  map (\ (n, z) -> (show n, scanText z) )
  21                  $
  22                  zitate
  23
  24-- ------------------------------------------------------------
  25--
  26-- der Filter fuer die unwichtigen Woerter
  27
  28istVonInteresse :: String -> Bool
  29istVonInteresse w
  30    = length w > 1
  31      &&
  32      w `notElem` [ "und", "oder", "nicht",
  33                    "ich", "du", "er", "sie", "es", "wir", "ihr",
  34                    "bin", "bist", "ist", "sind", "seid",
  35                    "der", "die", "das", "dem", "den", "des",
  36                    "ein", "eine", "einer",
  37                    "nur",
  38                    "mein", "meine", "meiner", "dein", "sein",
  39                    "ihn", "ihr", "uns",
  40                    "von", "vom",
  41                    "wer", "wie", "was",
  42                    "wieso", "weshalb", "warum",
  43                    "wenn", "werde", "werden",
  44                    "wurde", "wurden", "will",
  45                    "zum", "zur"
  46                  ]
  47      &&
  48      not (all isDigit w)
  49
  50-- ------------------------------------------------------------
  51--
  52-- die Anfragen
  53
  54wortSuche :: String -> IO ()
  55wortSuche w
  56    = gefundeneZitate (`S.memberres)
  57    where
  58    res = documentNames . searchIndex w $ zitateIx
  59
  60praefixSuche :: String -> IO ()
  61praefixSuche p
  62    = gefundeneZitate (`S.memberres)
  63    where
  64    res = documentNames . prefixSearchIndex p $ zitateIx
  65
  66-- ------------------------------------------------------------
  67
  68gefundeneZitate :: (DocumentName -> Bool) -> IO()
  69gefundeneZitate isRes
  70    = putStrLn
  71      $
  72      concatMap (\ (_wer, was) -> breakLines was ++ "\n")
  73      .
  74      sort
  75      .
  76      filter (\ (wer, _was) -> isRes (show wer))
  77      $
  78      zitate
  79
  80alleZitate      :: IO()
  81alleZitate      = gefundeneZitate (const True)
  82
  83-- ------------------------------------------------------------
  84--
  85-- wichtige einfache Anfragen
  86
  87bayern  = wortSuche "Bayern"
  88merkel  = wortSuche "Merkel"
  89willi   = wortSuche "Willi"
  90loddar  = praefixSuche "Matt"
  91trainer = praefixSuche "Train"
  92
  93-- ------------------------------------------------------------
  94--
  95--
  96
  97breakLines :: String -> String
  98breakLines s
  99    = line ++ word ++ "\n"
 100      ++
 101      ( if null rest2
 102        then ""
 103        else "\t" ++ breakLines (dropWhile isSpace rest2)
 104      )
 105    where
 106    (line, rest) = splitAt 50 s
 107    (word, rest2) = span (not . isSpace) rest
 108
 109-- ------------------------------------------------------------
weiter

weiter

Die Zitate

ghc -e alleZitate IndexExample Zitate Index
weiter

weiter

Alles über die Bayern

ghc -e bayern IndexExample Zitate Index
weiter

weiter

Alles über Merkel

ghc -e merkel IndexExample Zitate Index
weiter

weiter

Alles über die Willis

ghc -e willi IndexExample Zitate Index
weiter

weiter

Alles von und über Loddar

ghc -e loddar IndexExample Zitate Index
weiter

weiter

Alles über die Trainer

ghc -e trainer IndexExample Zitate Index
weiter

Letzte Änderung: 10.07.2012
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel