vmamontov

something_about_tokenizing

May 30th, 2022
1,304
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.13 KB | None | 0 0
  1. from xml.dom import minidom
  2. from nltk.tokenize import WordPunctTokenizer
  3.  
  4. raw = '''<?xml version="1.0" ?>
  5. <zAppointments reminder="15">
  6.    <appointment>
  7.        <description>1181251680</description>
  8.        <description>Если я видел дальше других, то потому что стоял на плечах гигантов</description>
  9.        <uid>040000008200E000</uid>
  10.    </appointment>
  11. </zAppointments>'''
  12.  
  13.  
  14. def get_text(xml):
  15.     xml_text = minidom.parseString(xml)
  16.     text = xml_text.getElementsByTagName('description')[1].firstChild.data
  17.     return text
  18.  
  19.  
  20. def clear_text(text):
  21.     symbols = [',', '.', ':', ';', '!']
  22.     for s in symbols:
  23.         text = text.replace(s, ' ')
  24.     return text
  25.  
  26.  
  27. def get_tokens(text):
  28.     tok = WordPunctTokenizer()
  29.     tokens = tok.tokenize(text)
  30.     return tokens
  31.  
  32.  
  33. def get_len_list(my_list):
  34.     return len(set([w.lower() for w in my_list]))
  35.  
  36.  
  37. text = get_text(raw)
  38. # print(text)
  39.  
  40. tokens = get_tokens(text)
  41. # print(tokens)
  42.  
  43. text2 = clear_text(text)
  44. # print(text2)
  45.  
  46. tokens2 = get_tokens(text2)
  47. # print(tokens2)
  48.  
  49. n = get_len_list(tokens2)
  50. print(n)
Advertisement
Add Comment
Please, Sign In to add comment