你正在做文本解析。
我知道你想为此建立一个模型,但如果没有目标数据(文本示例和这些文本中的学校名称列表),你就无法做到,我认为你没有。我建议你自己做,没有自学模型。
你最好的选择是正则表达式。
import re
sub_patterns = ['[A-Z][a-z]* University',
'University of [A-Z][a-z]*',
'Ecole [A-Z][a-z]*']
pattern = '({})'.format('|'.join(sub_patterns))
matches = re.findall(pattern, mystring)
我使用了来自this site 的文字,我得到了:
matches
['University of Cambridge',
'University of Oxford',
'Harvard University',
'Columbia University',
'Princeton University',
'University of Chicago',
'Stanford University',
'Yale University',
'University of California',
'Humboldt University',
'Cornell University',
'University of Pennsylvania',
'University of London',
'Uppsala University',
'University of Edinburgh',
'Heidelberg University',
'University of California',
'York University',
'University of Michigan',
'Hopkins University',
'University of Vienna',
'University of G',
'State University',
'University of Bologna',
'Leipzig University',
'Maximilian University',
'University of Southern',
'University of Tokyo',
'Leiden University',
'Lund University',
'Charles University',
'University of Copenhagen',
'Ecole Normale',
'University of Manchester',
'Ecole Polytechnique',
'University of Bonn',
'University of Texas',
'Duke University',
'Mellon University',
'Azhar University',
'University of Helsinki',
'University of Virginia',
'Hebrew University',
'University of Toronto',
'University of Illinois',
'Sapienza University',
'University of Zurich',
'University of Washington',
'University of Minnesota',
'Georgetown University',
'University of Wisconsin',
'Gill University',
'University of Glasgow',
'University of Oslo',
'Peking University',
'State University',
'Brown University',
'University of T',
'Jagiellonian University',
'State University',
'Free University',
'Kyoto University',
'University of Padua',
'Waseda University',
'University of Florida',
'University of Geneva',
'State University',
'University of Jena',
'Keio University',
'University of Arizona',
'University of Maryland',
'Stockholm University',
'Boston University',
'University of Strasbourg',
'University of Tartu',
'Rutgers University',
'University of Warsaw',
'Utrecht University',
'University of North',
'Rockefeller University',
'Luther University',
'Tsinghua University',
'University of St',
'University of Amsterdam',
'Northwestern University',
'University of Notre',
'Technical University',
'University of Coimbra',
'Indiana University']
你可以看到Massachusetts Institute of Technology没有出现,我们得到Ecole Normale而不是Ecole Normale Superieure,University of G而不是University of Göttingen(因为ö不在[az]中)并且还有其他错误.
这些是完全正常的,因为我写的模式还不够好。现在,您的工作就是为您的数据构建良好的模式。
您可能还需要文本预处理来简化此任务,例如将文本转换为 ascii 小写字符。