2010-08-19 2 views
1

les données seront stockées dans une base de données MySQL comme ceci:chaînes de regroupement par sous-chaîne dans mysql/python ou mysql/.net

5911 CD $4.99 Eben, Landscapes of Patmos {w.Martin Lenniger, percussion}; 2 Choral Phantasies; Laudes. (All w.Sieglinde Ahrens, organ) 
5913 CD $5.99 Turina, Sevilliana; Rafaga; Hommage a Tarrega; Sonata. Rodrigo, 3 Piezas Espanolas; En Los Trigales; Sarabande Lointaine. (Eric Hill, guitar^) 
145460 CD $13.98 Wagner, The Flying Dutchman. (Hans Hotter, Astrid Varnay, Set Svanholm et al. Cond. Reiner. Rec.1950. PLEASE NOTE: Limited-pressing CDRs) 
145461 CD $13.98 Montemezzi, L'Amore dei Tre Re. (Virgilio Lazzari, Dorothy Kirsten, Charles Kullman, Robert Weede, Leslie Chabay et al. Cond. Giuseppe Antonicelli. Rec. 1949. PLEASE NOTE: Limited-pressing CDRs) 
145462 CD $13.98 Ponchielli, La Gioconda. (Zinka Milanov, Giacomo Vaghi, Leonard Warren, Rise Stevens, Richard Tucker, Margaret Harshaw et al. Cond. Emil Cooper. Rec. 1946. PLEASE NOTE: Limited-pressing CDRs) 
145465 CD $5.99 ' Yankele: Yiddish Songs'. (16 titles incl. Az der Rebe, Rozhinkes mit Mandlekh, Shabes, Yankele, Belz, Di Grine Kuzine. Moshe Leiser, voice and guitar. Ami Flammer, violin. Gerard Barreaux, accordion. Rec. 'live', Lyon Opera. Total time: 78') 
145467 CD $4.99 Brahms, Piano Trios 2 & 3. (Trio Bamberg: Evgeny Schuk, violin; Stephan Gerlinghaus, cello. Robert Benz, piano. Rec. Nuremberg, 4/7/2000. Total time: 51'45') 
145468 CD $4.99 Gaubert, Piece Romantique; Trois Aquarelles. Debussy, Premier Trio in G. Francaix, Trio. (Trio Cantabile: Hans-Jorg Wegner, flute. Guido Larisch, cello. Christiane Kroeker, piano. Rec. Hannover, 3/2001. Total time: 62'35') 
145469 CD $4.99 Gattermeyer, Heinrich [b.1923]: Ophelias Schattentheater [text by Michael Ende]. Matthias Drude [b.1960], Jorinde und Joringel. Christoph J. Keller [b.1959], Die Kristallkugel [both texts by Brother Grimm]. (Helmut Thiele, narrator w.Bernd-Christian Schulze, piano. Total time: 68'08') 
145470 CD $2.99 Morrill, Dexter [b.1938]: Dance Bagatelles for Viola & Piano; Three Lyric Pieces for Violin and Piano [Laura Klugherz, viola & violin. Jill Timmons, piano]; Fantasy for Solo Cello [James Kirkwood, cello]; String Quartet #2 [Tremont String Quartet]. (Total time: 51'03') 
145471 CD $2.99 Werntz, Julia: String Trio with Homage to Chopin [Curtis Macomber, violin. Lois Martin, viola. Ted Mook, cello]; 'To You Strangers'- Five Poems of Dylan Thomas for Mezzo-Soprano Solo [Christina Ascher]; Piano Piece [John McDonald]. John Mallia, Lock [Stephanie Kay, clarinet]; Poor Denizens of Hell [chamber ensemble/ Daniel Hosken]; Plexus 2. (Aura Group for New Music) 
145472 CD $2.99 Morrill, Dexter [b.1938]- 'Music for Trumpets': 'Ponzo' for Two Trumpets; 'Nine Pieces' for Solo Trumpet; 'TARR' for Four Trumpets & Computer; 'Studies' for Trumpet & Computer; 'Trumpet Concerto' for Trumpet & Piano. (Mark Ponzo, trumpet with Barbara Butler [trumpet] & William Koehler, piano. Total time: 52'02') 
145473 CD $2.99 Kallstrom, Michael [b.1956]: 'Stories'. (A chamber opera for solo performer with puppets and electronic tape based on Old Testament stories) 
145474 CD $2.99 Carosio, Vailati, Lechi, Ponchielli, D'Alessandro, Sterzati, Riva, Pucci, Casazza, Denti, Gnaga, Anelli, Feroldi: 'The Mandolins of Stradivari'. (16 pieces for mandolin ensemble et al. Ugo Orlandi, mandolin. Alessandro Bono, guitar. Maura Mazzonetto, piano. Giampaolo Baldin, baritone. Quartetto romantico a plettro 'Umbert Sterzati'. Orchestra di Mandolini e Chitarre 'Citta di Brescia'/ Mandonico. Total time: 77'19') 
145475 CD $3.99 Rachmaninov, Symphony #3; Symphonic Dances. (St. Petersburg Philharmonic/ Jansons. Total time: 72'16') 

i besoin chaque être regroupés avec 4 autres titres qui ont mots commun. par exemple si je le voudrais pour regrouper 4 cd qui ont à la fois le mot BEETHOVEN et MOZART dans la chaîne. CEPENDANT, je ne veux pas spécifier quels mots il devrait se grouper par. je voudrais que cela soit fait en sorte de là façon

intelligence artificielle est ce que je pense que l'algorithme devrait ressembler à:

  1. faire une distribution de fréquence sur tous les mots
  2. jeter les mots qui sont fréquemment utilisé dans l'anglais (comme si, ou, le, d'où puis-je obtenir une liste de ceux-ci) ??
  3. début à groupe par les mots qui se produisent moins souvent

personne ne sait aucune façon intelligente de grouper cela?

Répondre

2

Re (2), ce que vous voulez sont appelés "mots vides" - par exemple, dans NLTK (qui est Python, mais j'imagine qu'il y aura des équivalents C#), par chapter 2 dans son excellent livre en ligne,

>>> from nltk.corpus import stopwords 
>>> stopwords.words('english') 
['a', "a's", 'able', 'about', 'above', 'according', 'accordingly', 'across', 
'actually', 'after', 'afterwards', 'again', 'against', "ain't", 'all', 'allow', 
'allows', 'almost', 'alone', 'along', 'already', 'also', 'although', 'always', 
...] 

Le livre que j'ai cité peut aussi aider avec votre point 1, mais le point 3 est vraiment un champ différent - le regroupement. Vous voulez un type de cluster très particulier (taille de cluster spécifiée et identique), les algorithmes existants ne vous conviennent peut-être pas, mais il n'est pas trop difficile d'en concevoir en fonction de ce que vous mentionnez. Fondamentalement, vous voulez que chaque mot vaille un "score" plus élevé pour les mots qui sont plus rares en anglais (et NLTK, ou tout autre outil de traitement du langage naturel en C#, peut bien sûr vous aider) - moins le logarithme de la fréquence du mot par exemple pourrait être un début.

Il vous suffit de marquer des mots non-stop qui se produisent dans au moins cinq documents, selon les spécifications que vous avez mentionnées, donc le nombre de mots significatifs devrait être assez bas, et une recherche exhaustive pourrait même être possible.

En fait, le plus gros problème pourrait être un autre - et s'il y a un groupe de moins de 5 docs qui, collectivement, n'ont pas ont des mots non-stop communs avec les autres? La possibilité de tels événements montre que vous devrez vous détendre vos spécifications dans certains respect (puisque je ne sais rien à propos de votre application, je ne peux pas donner des suggestions spécifiques, bien sûr, mais il pourrait être quelque chose de permettre aux groupes avec un certain nombre de documents différents de 5, à assouplir les critères de regroupement, etc). Ou préférez-vous juste diagnostiquer qu'il existe une situation où il est impossible de répondre à vos contraintes strictes et fournir un message d'erreur au lieu de résultats si cela se produit?

+0

alex, c'est une belle réponse merci beaucoup, j'attendrai que d'autres répondent aussi –

+0

@l__, de rien, si d'autres réponses arrivent, je serai aussi intéressé. BTW, suppression des mots vides réduira la charge de calcul, mais ne peut pas être un problème majeur pour votre tâche: les mots vides par définition sont très susceptibles, donc, en utilisant par exemple. '-log (freq (mot))' en tant que "score" d'un mot, les mots d'arrêt auront un score faible et ne devraient pas beaucoup influencer les choses.Alors peut-être vous devriez enlever seulement les "pires" mots d'arrêt ("a", "le", "de", ...), pas tout ce que donne NLTK (plus de 2000, et quelques-uns, comme par exemple " après "ou" n'est pas ", peut-être pas très commun dans votre texte spécifique d'intérêt, CD classiques! -) –

+0

martelli: merci. tu sais que j'ai fait un stopwords.words ('anglais') et je reçois des mots MOINS que vous êtes, seulement comme quelques centaines. sais pourquoi c'est? –

Questions connexes