Je dois effectuer la tige sur un texte. Les questions sont les suivantes:
tc code>. Le mot doit contenir des alphabets ou des chiffres ou un soulignement. Stockez la liste des mots jetonisés dans TW CODE> LI>
- Convertissez tous les mots en minuscules. Stocker le résultat dans la variable
tw code> li>
- Supprimez tous les mots d'arrêt de l'ensemble unique de
tw code>. Stocker le résultat dans la variable fw code> li>
- tige chaque mot présent dans
fw code> avec PORTERSTEMMER et stockez le résultat dans la liste PSW code> li>
ol> ci-dessous est mon code: p> xxx pré> Mon code fonctionne parfaitement avec toutes les tests fournis dans la main, mais il échoue uniquement pour le cas de test ci-dessous où P>
tc = "Je suis allé par inadvertance à Candy's Candy la semaine dernière (j'étais dans le centre commercial à la recherche de réparation téléphonique), et comme il s'avère, Vee Candy prononce maintenant un dollar - un dollar complet - pour même le plus simple de leurs belles offres de confection. J'ai acheté deux sucettes au chocolat et deux choses au chocolat-caramel-amand. Le coût total était de quatre-quelque chose. Je veux dire, les bonbons étaient savoureux et tout, mais soyons réels: une barre de snickers est une cinquantaine de cents. Après Cette révélation en dollars par bonbons, je ne me retrouve peut-être pas à nous promener rêveusement dans les bonbons de Report à tout moment. " P>
blockQuote>
Ma sortie est la suivante: p>
['Almond', 'Back', 'Bar', 'Acheté', 'Candi', 'Candi' Strong>, 'Caramel', 'Cent', 'Chocol', 'Chocol' , "Confect", "Coût", "Dreamar", "Dreamili", "Même", "Fifti", "Trouve", "Four", "plein", "inadvert", "Last", " Lollipop ', "Regard",' Mall ',' May ', "Moyenne", "Offre", "Per", "Téléphone", "Real", "Repair", "Revel", "Simpleest" , 'Snicker', 'Someth', "Bientôt", "Tasti", "Tasti", "Time", "Total", "Turn", "Two", "errer", "Wee", "Semaine", ' est allé '] p>
blockQuote> La sortie attendue est la suivante: p>
['Almond', 'Back', 'Bar', 'Acheté', 'Candi', 'Candi', 'Candi', 'Candi' Strong>, 'Caramel', 'Cent', 'Cent', 'Charg' , 'Chocol', "Confect", "Coût", "Dollar", "Dreamili", "Même", "Fifti", "Trouve", "Four" "," Plein "," inadvert "," Dernier "," Soit "," Lollipop "," Regard "," Mall "," May "," Me dire "," Offre "," Per ', "Téléphone", "Real", "Repair", "Repair",' See ' , 'Simpleest', 'Snicker', 'Someth', "Bientôt", "Tasti", "Tasti", "Time", "Total", "Turn", "Deux", "erre", 'Wee', ' semaine ',' est allé '] p>
blockQuote>
La différence est la survenue de 'Candi' P>
blockQuote>
Aide à la recherche d'aide pour résoudre le problème. P> p>
3 Réponses :
Tout d'abord, ne pas itérer à travers le texte plusieurs fois, voir Pourquoi ma fonction NLTK est-elle lente lors du traitement du Dataframe?
Faites cela à la place et que vous ne comprenez que dans vos données / texte une fois: P>
see 3 1 candi 5 3 dollar 3 1 two 2 1 chocol 2 1
Essayez d'utiliser:
import re import nltk from nltk import word_tokenize from nltk.corpus import stopwords from nltk.stem import PorterStemmer,LancasterStemmer pattern = r'\w+'; tw= nltk.regexp_tokenize(tc,pattern); tw= [word.lower() for word in tw]; unique_tw = set(tw); #Unique Set of Tokenized words(See Your Step3) stop_word = set(stopwords.words('english')); fw= [w for w in unique_tw if not w in stop_word];# Remove stopwords from unique_tw porter = PorterStemmer(); psw = [porter.stem(word) for word in fw]; print(sorted(psw));
C'est à cause du boîtier de titre et de minuscule du mot "Candy" P>
Je suis allé par inadvertance à Candy's Candy la semaine dernière (j'étais dans le centre commercial à la recherche de réparation téléphonique), et comme il s'avère, voir Candy à la suite d'un dollar - un dollar complet - pour même la plus simple de leur confection de petite confection Offres. J'ai acheté deux sucettes au chocolat et deux choses au chocolat-caramel-almond. Le coût total était quatre-quelque chose. Je veux dire, les bonbons étaient savoureux et tout, mais soyons réels: une barre de snickers est de cinquante cents. Après ce dollar - Candy Strong> Apocalypse, je ne me retrouve peut-être pas à errer rêveusement de retourner dans un bonbon de voir à tout moment. P> blockQuote>
Quel code a produit la «sortie attendue»? At-il utilisé les mêmes versions de tout ce que vous utilisez?
La sortie attendue reflétée lorsque j'ai exécuté mon code. Je ne peux pas voir le code qui a obtenu la sortie attendue. Oui, je crois que les versions sont identiques. Comme l'évaluation pratique est sur l'IDE Web.