我是NLTK的新手。 我有一个非结构化文本的文件。从文本中我想提取定义课程名称或教育的短语。
例如: 文字1:我是一名机械工程师 第2课:我已完成计算机科学工程专业毕业
我要提取的单词只是“机械工程师”和“计算机科学工程”。
如何做到这一点? 如果可能的话,如何构建正则表达式以匹配。?
答案 0 :(得分:1)
如果你想要提取的只是“机械工程师”和“计算机科学工程”,那么只需导入re
(不是Dim wksSource as worksheet
For X = 1 To B
Sheets("Calculations").Select
Function_Name = Range("B2").Offset(X, 0) 'Gets the Function Name
Set wksSource = worksheets.add
wksSource.Name = ("Function_Name")
Set wksSource = nothing
Next X
)并搜索:NLTK
和
"[mM]echanical [eE]ngineer"
如果开启,另一方面,你想为大学提供的每个专业做这件事,给WordNet看看。它支持对ngrams进行标记化/ lematizing(超过一个单词的想法)。
答案 1 :(得分:0)
你要问的是没有捷径。仅从您给出的示例中,您可以看到,仅通过查看句子上下文就无法挖掘专业。 (“我是一名机械工程师”看起来就像“我是加拿大高尔夫球手”。)所以你需要一个基于词库的方法。
我首先收集一些来自不同大学的专业名单(或者如果您的所有数据来自一个地方,请收集适用的清单)。然后,您可以找出这些名称,但通常会有非正式的方式来指代专业(“CSE”,“生物化学”等)。要获得这些列表,您需要使用不同的名称来源,或者您需要从您拥有的数据中手动注释重要的语料库。 然后您可以担心如何匹配列表中的名称,以及如何识别变体。