由于版权原因,我需要从报纸文章中提取姓名、性别、职位和雇主/公司名称,并在本地硬件(不允许云)上运行该过程。
我一直在使用 Llama 3.1,但我发现小于 70B 参数的模型无法获得可用的结果,并且在这个尺寸下,模型在我必须扔给它们的最好硬件上运行得太慢.
是否有其他规模较小的法学硕士可能擅长于此,同时使用更少的处理资源?
我可以使用 NER 来提取所有数据吗?我研究过的 NER 只提取姓名,但不提取性别。 (我不知道他们是否提取了其他数据,因为性别对我来说是一个阻碍。)
或者,我可以采取一种方法,首先使用 NER 进行第一次传递,然后将姓名与原始报纸文章一起通过 LLM 传递,以提取其他数据,并获得更好的结果,比单个 LLM 更快通过?
或者,如果答案是我应该训练一些模型,那么什么是适合我作为起点的好模型?我的机器学习之旅才刚刚开始,很希望有人指出正确的方向。
提前致谢!
除了你的限制之外,我不建议使用像 Llamma 3.1 这样的 LLM 来完成这样的任务。
NER
是 NLP 的经典任务之一,您可以结合更小的语言模型和工具来实现您的目标。您可以使用 NLTK
或 SpaCy
来解决此问题。我个人的选择是 SpaCy
,但是您定义的 gender
不是已知的命名实体。您可以在此文档中看到命名实体的列表。
我猜你所说的
gender
的意思是可能的 gender
与你文章中提到的 PERSON
的名称相关。有一些 python 包可以用来查找性别,但是,您应该注意,这可能非常模糊,并且应该有很大的容错能力。您可以使用gender-guesser
包。
一个可能的解决方案是这样的:
import spacy
import gender_guesser.detector as gender
nlp = spacy.load("en_core_web_sm")
def extract_info(text):
doc = nlp(text)
gender_detector = gender.Detector()
for ent in doc.ents:
if ent.label_ == "PERSON":
name = ent.text
name_gender = gender_detector.get_gender(name)
return doc.ents, name_gender
请注意,
en_core_web_sm
是通过spaCy提供的小模型,您可以通过指定en_core_web_lg
来使用大模型,只需确保在运行代码之前下载模型即可。下载模型的方法如下:
python -m spacy download en_core_web_sm