Maison >développement back-end >Tutoriel Python >Regrouper les mots avec des caractères de début et de fin similaires à l'aide de Python
En Python, nous pouvons regrouper des mots avec des caractères de statistique et de fin similaires en utilisant des méthodes telles que des dictionnaires et des boucles, en utilisant des expressions régulières et en implémentant des compréhensions de liste. La tâche consiste à analyser une collection de mots et à identifier des groupes de mots qui partagent un point de départ commun. et les personnages de fin. Cela peut être une technique utile dans diverses applications de traitement du langage naturel, telles que la classification de texte, la recherche d'informations et la vérification orthographique. Dans cet article, nous explorerons ces méthodes pour regrouper des mots de début et de fin similaires en Python.
Cette méthode utilise un dictionnaire pour regrouper les mots en fonction de leurs caractères de début et de fin similaires. En parcourant la liste de mots et en extrayant les caractères de début et de fin de chaque mot, nous pouvons créer une clé pour le dictionnaire. Les mots sont ensuite ajoutés à la liste correspondante dans le dictionnaire, formant des groupes en fonction de leurs caractères de début et de fin.
list_name.append(element)
Ici, la fonction append() est une méthode de liste utilisée pour ajouter un élément à la fin du list_name. List_name est la liste dans laquelle la méthode append est appliquée.
在下面的示例中,我们定义了一个名为group_words的函数,它以一个单词列表作为输入。我们初始化一个空字典groups来存储单词组。对于输入列表中的每个单词,我们提取其起始字符(word[0])和结束字符(word[−1])。然后我们使用这些字符创建一个元组键。
如果字典中已经存在该键,则将当前单词添加到相应的列表中。否则,我们创建一个以当前单词为第一个元素的新列表。最后,我们返回分组的结果字典。
def group_words(words): groups = {} for word in words: start_char = word[0] end_char = word[-1] key = (start_char, end_char) if key in groups: groups[key].append(word) else: groups[key] = [word] return groups words = ['apple', 'banana', 'ant', 'cat', 'dog', 'elephant','amazon grape'] result = group_words(words) print(result)
{('a', 'e'): ['apple', 'amazon grape'], ('b', 'a'): ['banana'], ('a', 't'): ['ant'], ('c', 't'): ['cat'], ('d', 'g'): ['dog'], ('e', 't'): ['elephant']}
在这种方法中,我们使用正则表达式来匹配每个单词中的模式。通过定义一个特定的模式来捕获单词的起始和结束字符,我们可以提取这些字符并创建一个用于分组的键。
import re result = re.split(pattern, string)
Ici, la fonction re.split du module re prend deux paramètres : pattern et string. Le modèle est une expression régulière qui définit les critères de fractionnement, tandis que la chaîne est la chaîne d'entrée à diviser. La fonction renvoie une liste de sous-chaînes résultant de l'opération de division basée sur le modèle spécifié.
在下面的方法中,我们使用re模块和正则表达式来匹配每个单词的起始和结束字符。我们定义了一个名为group_words的函数,它接受一个单词列表作为输入。在循环中,我们使用re.match来将模式^(.)(.*)(.)$与每个单词进行匹配。如果找到匹配项,我们分别使entre match.group(1) et match.group (3)分组。
import re def group_words(words): groups = {} for word in words: match = re.match(r'^(.)(.*)(.)$', word) if match: start_char = match.group(1) end_char = match.group(3) key = (start_char, end_char) if key in groups: groups[key].append(word) else: groups[key] = [word] return groups words = ['apple', 'banana', 'ant', 'cat', 'dog', 'elephant','amazon grape'] result = group_words(words) print(result)
{('a', 'e'): ['apple', 'amazon grape'], ('b', 'a'): ['banana'], ('a', 't'): ['ant'], ('c', 't'): ['cat'], ('d', 'g'): ['dog'], ('e', 't'): ['elephant']}
Les compréhensions de listes offrent un moyen concis et efficace de regrouper les mots en fonction de leurs caractères de début et de fin. En utilisant la compréhension du dictionnaire et la compréhension ultérieure de la liste, nous pouvons créer un dictionnaire de groupes et le remplir avec les mots correspondants.
Dans l'exemple ci-dessous, nous définissons une fonction group_words qui prend une liste de mots en entrée. En utilisant une seule compréhension de liste, nous créons des groupes de dictionnaires initiaux avec toutes les clés définies sur des listes vides. Lors de la prochaine compréhension de la liste, nous parcourons chaque mot de la liste d'entrée. Pour chaque mot, nous accédons à la liste correspondante dans le dictionnaire en utilisant (mot[0], mot[−1]) comme clé et y ajoutons le mot.
[expression for item in list if condition]
在这里,语法由方括号包围的表达式和一个用于迭代列表的for循环组成。此外,可以添加一个可选的if条件来过滤元素。对于满足条件的列表中的每个项目,都会对表达式进行求值,并将结果收集到一个新列表中。
def group_words(words): groups = {(word[0], word[-1]): [] for word in words} [groups[(word[0], word[-1])].append(word) for word in words] return groups words = ['apple', 'banana', 'ant', 'cat', 'dog', 'elephant','amazon grape'] result = group_words(words) print(result)
{('a', 'e'): ['apple', 'amazon grape'], ('b', 'a'): ['banana'], ('a', 't'): ['ant'], ('c', 't'): ['cat'], ('d', 'g'): ['dog'], ('e', 't'): ['elephant']}
在本文中,我们讨论了如何使用Python中的各种方法将具有相似起始和结束字符的单词进行分组。我们使用了三种不同的方法来对单词进行分组:使用字典和循环、使用正则表达式和使用列表推导式。通过使用这些技术,您可以高效地对单词进行分组,并从文本数据中获得有价值的见解,为各种自然语言处理应用打开了可能性。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!