2009-10-02 8 views
0

J'ai une liste de nombreuses phrases dans Excel sur chaque ligne d'une colonne. J'ai comme 3 colonnes ou plus avec de telles phrases. Il y a quelques phrases communes dans celles-ci. Est-il possible de créer un script pour créer un diagramme de Venn et obtenir les plus communs entre tous.Venn Diagramme d'une liste de phrases

Exemple: Il s'agit de phrases dans une colonne. De même, il existe différentes colonnes.

lymphocytes sanguins de cancer

lymphocytes sanguins de patients

ovaire tumor_Grade III

péritoine tumor_Grade IV

hormone résistant PCA

Est-il possible d'écrire un script en python ?

+3

S'il vous plaît compléter votre question en donnant aussi la sortie exacte que vous désirez donné ces données d'entrée, sinon il faut beaucoup de devinettes pour interpréter vos mots (par exemple, il n'y a pas de mots "commun entre tous" dans l'exemple, il y a quelques mots et séquences de mots qui sont communs entre deux - comment voulez-vous vous comporter dans cette cas, c.-à-d., quelle sortie voulez-vous?). –

Répondre

0

Votre question n'est pas entièrement claire, donc je pourrais mal comprendre ce que vous cherchez.

Un diagramme de Venn est juste quelques opérations Set simples. Python a ce truc construit dans le type de données Set. Fondamentalement, prenez vos deux groupes d'éléments et utilisez les opérations définies (par exemple, utilisez intersection pour trouver les éléments communs).

Pour lire dans les données, votre meilleur pari est probablement d'enregistrer le fichier au format CSV et juste l'analyser avec la méthode split chaîne.

2

Ceci est mon interprétation de la question ...

Donnez au z.csv fichier de données (exporter vos données à partir d'Excel dans un fichier csv)

"Blood lymphocytes from cancer","Blood lymphocytes from sausages","Ovarian tumor_Grade III" 
"Blood lymphocytes from patients","Ovarian tumor_Grade III","Peritoneum tumor_Grade IV" 
"Ovarian tumor_Grade III","Peritoneum tumor_Grade IV","Hormone resistant PCA" 
"Peritoneum tumor_Grade XV","Hormone resistant PCA","Blood lymphocytes from cancer" 
"Hormone resistant PCA",,"Blood lymphocytes from patients" 

Ce programme trouve les phrases communes à toutes les colonnes

import csv 

# Open the csv file 
rows = csv.reader(open("z.csv")) 

# A list of 3 sets of sentences 
results = [set(), set(), set()] 

# Read the csv file into the 3 sets 
for row in rows: 
    for i, data in enumerate(row): 
     results[i].add(data) 

# Work out the sentences common to all rows 
intersection = results[0] 
for result in results[1:]: 
    intersection = intersection.intersection(result) 

print "Common to all rows :-" 
for data in intersection: 
    print data 

Et elle imprime cette réponse

Common to all rows :- 
Hormone resistant PCA 
Ovarian tumor_Grade III 

Je ne suis pas sûr à 100% que ce soit ce que vous cherchez, mais j'espère que cela vous aidera à démarrer!

Il pourrait être généralisé facilement autant de colonnes que vous voulez, mais je ne voulais pas le rendre plus compliqué

Questions connexes