前言:
现在同学们对“python分词方法”大体比较讲究,同学们都想要了解一些“python分词方法”的相关内容。那么小编在网上收集了一些对于“python分词方法””的相关内容,希望看官们能喜欢,你们一起来了解一下吧!N-Gram 分词算法 Python 实现
我们前面简单介绍了n-gram分词算法的基本概念,今天我们就来聊聊它怎么用代码去实现和使用。
我们可以利用N-gram来预估一个句子是否合理。
N-gram算法具体过程
过滤掉文本数据中的标点符合和其他特殊字符。
对所有的单词执行小写转换,并删除单词之间的空格,换行符等标志位。
使用长度为N的窗口对文本内容执行字符级滑动取词,将结果存入有序列表。
所以程序分为两步:
第一步:文本过滤。
第二步:滑动取词。
文本过滤
我们使用python实现。
def text_filter(text: str) -> str: """ 文本过滤器:过滤掉文本数据中的标点符合和其他特殊字符 :param text:待过滤掉文本 :return: 过滤后的文本 """ result = str() for t in text: if t.isalnum(): if t.isalpha(): t = t.lower() result += str(t) return result滑动取词
def slide_words(text: str, l: int = 5) -> list: """ 滑动取词器 Input: text='abcd', l=2 Output: ['ab', 'bc', 'cd'] :param text:过滤后的文本(只包含小写数字/字母) :param l:滑动窗口长度,默认为5 : returns: """ tf = text_filter(text) result = list() if len(tf) <= l: result.append(tf) return result for i in range(len(tf)): word = tf[i:i + l] if len(word) < l: break result.append(word) return result测试
if __name__ == '__main__': banner = 'abcdefghigkLMNOPQRSTUVWXYZabcdefgh \r\n\r\n)021' print(slide_words(banner))运行结果
['abcde', 'bcdef', 'cdefg', 'defgh', 'efghi', 'fghig', 'ghigk', 'higkl', 'igklm', 'gklmn', 'klmno', 'lmnop', 'mnopq', 'nopqr', 'opqrs', 'pqrst', 'qrstu', 'rstuv', 'stuvw', 'tuvwx', 'uvwxy', 'vwxyz', 'wxyza', 'xyzab', 'yzabc', 'zabcd', 'abcde', 'bcdef', 'cdefg', 'defgh', 'efgh0', 'fgh02', 'gh021']
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #python分词方法