Совпадение слов в тексте

#python-2.7

#python-2.7

Вопрос:

Привет, ребята, я пытаюсь подсчитать, сколько раз слово и его сокращения (например, вы и вы). Проблема в том, что я тоже не вижу способа уловить сокращение моего слова.

 def paraula(file,palabrabuscar):
    abrirLetra = open(file) #Open the file
    palabras = ""
    vegades = 0
    for palabras in abrirLetra.read().split():#I split all words in text
        if (palabras == palabrabuscar) :#Look for coincidence
            vegades = vegades  1
            
    abrirLetra.close()
    return vegades

file = 'lletra.txt'
print paraula(file,"you")
  

Комментарии:

1. Простите меня, если я ошибаюсь, но не будет ли вызов string.split() разделять его по символам?

Ответ №1:

Возможно, вам захочется разбить файл на апострофы, пробелы, а также любые другие знаки препинания. Чтобы разделить на несколько разделителей, вам необходимо import re и использовать регулярные выражения.

Если вы также хотите сопоставить слова с другим регистром (например, ‘you и ‘YOU’), тогда вам нужно будет использовать lower() .

 import re  # use regular expressions

def paraula(file,palabrabuscar):
    abrirLetra = open(file) #Open the file
    palabras = ""
    vegades = 0
    for palabras in re.split(r'[s'".,;] ', abrirLetra.read()):
        # split at every: s whitespace
        #                 ' apostrophe
        #                 " quotation mark
        #                 . full stop
        #                  , comma
        #                  ; semi-colon
        #
        # The plus sign at the end splits at one or more delimiters in
        # a row (for example "Hello. Hi." has a full stop and a space 
        # together between Hello and Hi).
        #
        # Backslashes are added before special characters
        # (for example s matches the letter s, but s matches whitespace).

        if (palabras.lower() == palabrabuscar.lower()): #Look for coincidence
            # Convert both to lowercase if you want to match
            # you, You and YOU.
            vegades = vegades  1

    abrirLetra.close()
    return vegades

file = 'lletra.txt'
print paraula(file,"you")