文本数据处理
一、数据转换与错误处理
(一)运维中的数据转换问题
在计算机审计及各类数据处理场景中,数据转换是关键步骤,涉及将被审计单位或其他来源的数据有效装载到目标数据库,并明确标示各表及字段含义与关系。然而,此过程易出现转换数据错误,因为数据在系统间转移时,格式、编码或结构可能改变,导致数据含义及关系出错。例如,某公司 ERP 系统与审计软件间日期格式转换不当,就会造成数据错误解读,影响审计准确性。
(二)常见数据转换错误类型
- 命名错误:原端数据源标识符与目的数据源保留字冲突,如 CRM 系统的“order date”字段在 ERP 系统中为保留字,需重新命名避免冲突。
- 格式错误:同一种数据类型在不同系统可能有不同表示方法和语义差异,如 Excel 日期格式与 SQL 数据库期望格式不一致,需编写转换脚本统一格式。
- 结构错误:不同数据库的数据定义模型不同,如关系模型和层次模型转换时,需重新定义实体、属性和联系,防止信息丢失。
- 类型错误:不同数据库同一种数据类型存在精度差异,在转换时要综合考虑数据类型及其精度,确定合适映射关系。
(三)数据错误处理方法
- 数据输入错误:人工数据收集、记录或输入过程中产生失误,导致数据集中出现异常值,影响后续分析,如调查问卷年龄数据录入错误。
- 测量误差:使用不准确测量工具或方法,使数据偏离实际值,如物理实验中校准不准确的温度计记录的温度数据。
- 数据处理错误:数据分析过程中因操作不当产生异常值,如数据清洗时错误删除重要数据点或使用错误公式进行统计计算。
在数据转换环节增加数据检验步骤至关重要。以员工工资数据集为例,若发现负数工资记录(明显不合理),处理方法如下:
- 若错误数据量少,可直接删除,如少数几条负数工资记录可能是输入错误,删除不影响整体分析。
- 可替换错误数据,用均值、中位数或众数代替,如计算员工所在部门平均工资替换错误工资值。
- 若错误数据量多,将错误数据和正常数据分开处理,为异常值单独建立模型,与正常值模型结果合并,避免异常值对整体分析结果产生过大影响。
二、数据质量评估
数据质量是保证数据应用效果的基础,涉及多个维度评估指标:
- 完整性:数据集应包含所有预期信息项,无遗漏。评估时查看数据统计中的记录数和唯一值情况,如销售数据集中订单号字段存在大量重复或缺失,说明完整性有问题。
- 一致性:数据集中相同信息项在不同记录或数据源间应保持相同表示和含义,多数数据有标准编码、规则或格式要求,检验时看其是否符合既定标准,如客户信息系统中性别字段应遵循统一编码规则。
- 准确性:数据记录信息应准确无误,不存在异常或错误,常见错误包括乱码、格式错误、逻辑错误等,准确的数据是数据质量的核心要求之一。
- 及时性:数据应在最短时间内采集、处理和更新,以满足应用需求,如电商平台商品库存信息需实时更新,否则可能导致消费者下单后发现商品已售罄的情况。
在进行数据质量评估时,应根据具体应用场景和需求,对各项评估指标进行选择和权重分配,以全面、准确地衡量数据质量,为后续的数据应用提供可靠保障。
三、审计数据处理
审计数据处理包括数据查询、审计抽样、统计分析和数据分析等方法:
- 数据查询:审计人员依据经验和审计分析模型,使用审计软件中的查询命令分析采集的电子数据,或通过运行各种查询命令以特定格式检测被审计单位数据,是常用方法之一。
- 审计抽样:从审计对象总体中选取一定数量样本进行测试,根据样本测试结果推断总体特征,在面向数据的计算机审计中发挥重要作用。
- 统计分析:目的是探索被审计数据内在的数量规律性,以发现异常现象,快速寻找审计突破口,常用方法包括一般统计、分层分析和分类分析,通常与其他审计数据处理方法配合使用。
- 数据分析:根据字段数据值分布情况、出现频率等对字段进行分析,先不考虑具体业务,对分析出的可疑数据结合业务进行审计,有助于发现隐藏信息。
审计数据直接影响审计结果的准确性和效率性,国内外都重视审计数据处理,不断研究与开发电子数据审计软件,为审计数据的采集、处理与分析提供保障。在 Kettle 中,可通过日志和审计功能存储日志及转换步骤级别的日志信息,对日志进行事件细节审计,提供完整质量指标和信息统计,助力审计工作的开展和审计质量的提升。
四、中文分词算法
(一)中文分词的挑战与MMSEG算法
中文分词与英文等拉丁语系语言不同,中文没有明显单词分界线,因此中文分词算法需先确定基本单位(即单词)。MMSEG 分词算法是解决中文分词问题的一种有效方法,由 Hosein 提出,其基本思路是依据词典在待分析句子中寻找对应词,从句子两头同时开始找词,以更快找到最合适的分法,并根据上下文判断词的用法。该算法使用的词典主要有汉字字典、中文单位词语词典和自定义词典:
- 汉字字典:包含众多汉字,每个字有读音、意思及用法示例,字按一定顺序排列,如部首、笔画数或拼音字母顺序。
- 中文单位词语:通过分词和词性标注将中文文本切分成最小有意义单位(词语),并标注词性。
- 自定义词典:类似于个人词汇本,用于存放新词或专业术语,方便电脑识别其拼写和用法,提高分词准确性,尤其在处理特定领域文本时作用显著。
(二)匹配算法
MMSEG 算法采用简单最大匹配和复杂最大匹配两种算法:
- 简单最大匹配算法:从待分词文本左边开始,列出所有可能分词结果,但存在从左到右依次匹配可能忽略更合适分词方式的问题。例如对“国际化大都市”的分词,可能会出现多种不太准确的划分情况。
- 复杂最大匹配算法:从给定文本中选择起始点,每次向后扩展三个字符形成词组,不断重复此过程至文本末尾,然后根据词库中词的频率、长度等标准确定最优分词结果。如对“研究大数据”的分词,会尝试多种组合以找到最优方式。
(三)歧义消除规则
MMSEG 算法根据汉语组词习惯制定了四种解决词义混淆的规则:
- 规则一:备选词组合的最大匹配规则:从句子开头尽量找最长词,在词典中查找,找到则画出该词,对剩余部分重复操作,若找不到则缩短词长再试,若最终仍无法找到,则将单字作为词。此方法处理长词速度快,但可能在处理模棱两可的词时出现分错情况。
- 规则二:备选词组合的平均词长最大规则:基于较长词往往能提供更多信息的原理,通过词语长度寻找线索,帮助确定更合适的分词组合。
- 规则三:备选词组合的词长变化最小规则:类似于人们说话时尽量使每个词长度变化不突兀,让电脑处理后的语言更接近日常说话习惯,减少出错机会,提高分词的合理性和可读性。
- 规则四:单字词频率最高规则:在备选词组合中,统计一个字的词出现的频率,可通过计算每个单字词出现次数的自然对数并求和,选择总和最大的词作为频率最高的词,以此确定更优的分词结果。
(四)常用中文分词工具
- Jiba 分词:是常用的中文分词工具,用 Python 编写,具有精确模式、全模式和搜索引擎模式三种模式,适用于不同的应用场景,能满足多样化的分词需求。
- NLTK(自然语言工具包):由斯坦福大学自然语言处理小组开发的开源文本分析工具,包含分词器、命名实体识别、词性标注和句法分析器等,有助于更好地分析中文文本,特别适合自然语言处理研究和教学工作,为相关领域的学术研究和实践应用提供了有力支持。
- Solex:清华大学自然语言处理实验室开发的中文词法分析工具包,能实现分词和词性标注,具有能力强、准确率高、速度快的优点,在中文文本处理中表现出色,可有效提升分词和词性标注的质量与效率。
- NOPIER 分词系统:前身为 ICTCLES 词法分析系统,由北京理工大学张华平博士提供,经过十多年发展,功能丰富,性能强大,能够应对复杂的中文文本分词任务,为专业的文本处理工作提供了可靠的技术手段。
- snownlp:用 Python 编写的中文文本分词库,不仅能进行分词和词性标注,还具备情感分析、文本分类、转成拼音、繁简转换、提取关键词和摘要、计算文本相似度、统计词频和逆向文档频率等多种功能,功能全面,适用于多种自然语言处理任务,为中文文本的深入分析和挖掘提供了便利。
中文分词算法在自然语言处理和数据挖掘中具有重要地位,不同的分词算法和工具各有特点和优势,在实际应用中,需根据具体需求选择合适的方法和工具,以实现准确、高效的中文文本分词,为后续的文本分析、信息检索、情感分析等任务奠定基础。
五、文本分词基础概念
文本分词是将文本数据拆分成有意义的小单位(通常是单词)的过程。在中文中,由于单词间无空格,需借助特定技巧实现分词,而英文则通过空格分隔单词,使电脑更易识别。例如,英文句子“i am a teacher”能直接通过空格识别单词,而中文句子“我是一名教师”需确定“教师”为一个词,这就是分词算法的任务。
分词算法以一段文字为输入,通过切分和过滤,输出拆分后的单词。其基本原理多采用统计方法,利用标准语料库中的例子进行学习和分析。以“大数据将带来什么”为例,期望电脑能正确分词,而不是错误划分,这就需要通过数学模型学习和预测单词间关系,找到最优分词方式,使电脑更好地理解文本。这种技术在搜索引擎、语音识别等领域广泛应用,如在搜索引擎中,准确的分词有助于提高搜索结果的准确性和相关性,让用户更快找到所需信息;在语音识别中,能使电脑更准确地将语音转换为文字,提升交互体验。
(一)语言模型与算法
- N - gram 模型:根据前面几个词预测下一个词出现概率,如通过“今天”预测后续可能出现的词,用于分析单词组合规律,在文本处理中可辅助确定更合理的分词结果,提高文本理解的准确性和连贯性。
- 维特比算法:考虑分词仅与前一个分词相关,采用动态规划算法解决最优分词问题。就像依据一串神秘脚印(单词序列),通过一步步排除,找到最有可能留下脚印的嫌疑人(最合理的单词序列),该算法高效且能避免检查所有可能情况,快速确定最优解,提升分词效率和准确性。
(二)语料库
语料库是装满各种文本的巨大语言材料仓库,包含书本文字、日常对话等,以电子形式保存,便于研究和分析语言。构建语料库需遵循代表性、结构性、平衡性、规模性和原数据等原则:
- 代表性:语料应从特定范围随机挑选,能代表该范围内大多数情况,确保语料库能反映真实语言使用的多样性和普遍性,如不能仅收集某一特定主题的文本,而应涵盖多种领域和主题的内容。
- 结构性:搜集的语言材料需是电脑可读的电子形式,且有组织、有条理,每个材料有代码及相关信息,如类型、大小、取值范围等,并保证完整,以便于系统地分析和利用语料库中的数据,提高语言研究的效率和准确性。
- 平衡性:考虑学科领域、时间年代、文章风格、地方特色、发表文章的报纸杂志以及使用资料的人的年龄、性别、文化水平、经历等因素,选取一个或几个重要因素进行平衡,通常学科、时间、风格和地方等因素用得较多,使语料库能更全面、客观地反映语言的实际使用情况,避免因某些因素的过度偏重而导致语料库的偏差。
- 规模性:大量文字材料对语言研究有益,但随着材料增多,垃圾材料也会增加,且达到一定数量后,其作用并非线性增长,因此需根据实际情况确定合适的材料量,以在保证研究效果的前提下,提高资源利用效率,避免资源浪费和数据冗余。
- 原数据:对研究语料库至关重要,能帮助明确语料的时间、来源、作者、文本特征等信息,还可用于区分和比较不同小语料库,记录版权、加工过程和管理信息等,为语料库的有效管理和合理利用提供重要依据,确保语料库的质量和可靠性。
在实际应用中,虽然可通过数据预处理技术自行整理文本信息构建语料库,但考虑到上述原则以及搭建语料库的复杂性和人力消耗,通常会选择开源数据集,不过在特定商业目的下,若找不到合适的开源数据,也可能需要自行制作语料库,以满足特定的研究和应用需求。
六、中文分词方法分类
(一)基于字符串匹配的分词方法
基于字符串匹配的分词方法,又称机械分词方法,是将句子与词典比对,找到匹配的词串进行切分。根据扫描方式分为正向匹配和逆向匹配,正向匹配从文本开头向后扫描,逆向匹配从文本末尾向前扫描;根据长度优先匹配原则分为最大匹配和最小匹配,最大匹配优先找最长词,最小匹配优先找最短词;根据与词性标注结合方式分为单纯分词方法和分词与词性标注相结合的一体化方法,单纯分词只关注词汇分割,一体化方法同时进行词性标注以更好理解语义。
实际使用的分词系统多以机械分词为初步手段,并结合其他语言信息提高切分准确率。常用的机械分词法有正向最大匹配法、逆向最大匹配法和最少切分法:
- 正向最大匹配法:从文本最左边开始,取连续字符在词汇库中查找匹配词,若能匹配则画出该词,否则缩短字符串继续尝试,直到找到匹配词或字符串缩短为一个字。
- 逆向最大匹配法:从句子右边开始向左扫描,每次尽量匹配最长词,遇到不能匹配时,从稍左位置继续找下一个词,直至将句子全部分成单个词。逆向匹配法在处理复杂句子时切分精度相对较高,奇异现象较少,例如对“我喜欢吃苹果”的分词,逆向最大匹配法可能比分正向最大匹配法更准确,因此在实际应用中更受青睐。
- 双向最大匹配法:将正向和逆向最大匹配法结果进行比较,确定正确分词方法,综合两者优势,提高分词准确性和可靠性。
由于汉语单字可单独成词,正向最小匹配和逆向最小匹配法使用较少。
(二)基于理解的分词方法
基于理解的分词方法借助人工智能,让电脑在分词时分析句子结构和意思,利用这些信息解决词语模糊问题,提高分词准确性,更好地理解自然语言,在信息搜索和文本分析等领域有广泛应用。该方法通常包括分词子系统、句法语义子系统和总控部分,各部分协同工作,使电脑像人一样理解句子,从而实现更精准的分词。
(三)基于统计的分词方法
基于统计的分词方法先收集大量已分词文本,运用统计学和机器学习方法研究词语切分规律,训练模型,再用模型处理新文本进行分词。其优势在于能适应不同类型文本,随着训练数据增加,模型性能提升,分词准确率和速度也会提高。目前主要统计模型包括多种,实际应用中,采用统计方法的分词系统通常结合词典匹配词语和统计方法找新词,兼顾匹配分词的速度效率与统计方法识别新词、解决歧义的能力,提高分词的综合效果,为文本数据的深入分析和应用提供有力支持。