ML week10.2
机器学习第 10 周第 2 节
2025.05.08 Thu PM 2:20 ・ 53Minutes 10seconds
2025 年 05 月 08 日 周四 下午 2:20 ・ 53 分钟 10 秒
ZHANG YIWEN
张一文
Attendees 1 00:01
参会人员 1 00:01
네 수업 진행해 보도록 하겠습니다. 이번에 진행할 내용은 이제 이론 수업 시간에 배웠던 라이닝 프럼 텍스트 데이터에 대해서 실습 진행해 보도록 하겠습니다.
好的,我们将继续进行课程。这次我们将实践在理论课上学习的从文本数据中进行机器学习的内容。
파일은 동일하게 이제 토요일 11시 59분까지 올려주시면 되고요.
文件可以在周六下午 11 点 59 分前上传。
실습 진행하기 전에 이제 사용할 라이브러리 설치부터 해 주시면 될 것 같습니다.
在实践操作之前,请先安装所需的库。
이 코드 사용하셔서 이제 NLTK랑 코인l 파일 설치해 주시면 되고 설치해 주신 다음에 만약에 이제 자바 온 설정을 안 해 주신 분들은 오라클 웹사이트 가셔가지고 사용하시는 버전에 맞춰서 이제 JDK 다운로드 해 주신 다음에 설치하시고 경로 설정해 주시면 됩니다.
使用这段代码,现在请安装 NLTK 和 KoNLPy 文件。安装完成后,对于那些还没有设置 Java 环境的人,请前往 Oracle 网站,根据您使用的版本下载相应的 JDK,然后安装并设置路径。
윈도우는 이렇게 설정하시면 되고 맥은 이렇게 설정해 주시면 됩니다.
Windows 的设置方法是这样的,Mac 的设置方法也是这样。
먼저 이제 NLDK 라이브러리 설치는 저는 미리 진행을 했으니까 이제 인포트를 해봐서 확인을 해줄 건데 이렇게 이거 주석 잠깐 풀고 실행을 해줄게요.
首先,由于我已经提前进行了 NLDK 库的安装,现在我将导入并检查它,我会稍微取消这个注释并执行。
그러면 이렇게 임포트되는 걸 확인하실 수가 있습니다.
这样您就可以确认它已成功导入了。
Attendees 1 01:11
参会者 1 01:11
이제 텍스트 전처리부터 진행을 해볼 건데 전처리해서 사용할 데이터셋은 이제 im DB 무비 무비 데이터셋입니다.
现在我们将开始进行文本预处理,我们要处理的数据集是 IMDb 电影数据集。
제가 데이터셋 파일은 같이 올려드렸고요. 요거 실행해 주겠습니다.
我已经和大家一起上传了数据集文件。现在我将执行它。
여기서 보시면 이제 해당 데이터셋은 이제 리뷰랑 샘피니트 이렇게 두 개의 피처로 되어 있는 걸 확인해 볼 수가 있습니다.
在这里,你们可以看到该数据集由两个特征组成,分别是评论和样本数量。
그래서 데이터 쉐입을 확인을 해보면 5만 바이 2로 이렇게 되어 있네요.
因此,当我们检查数据形状时,它显示为 5 万乘 2。
그러면 이제 이렇게 불러온 텍스트 데이터를 가지고 전처리를 진행을 해줘야 되는데 이때 이제 클리닝하는 함수를 먼저 만들어 줄게요.
那么现在,对于我们已经获取的文本数据,我们需要进行预处理,首先我将创建一个清理函数。
여기 보시면 이제 정규 표현식을 활용해서 이제 텍스트 클리닝을 진행한다고 되어 있는데 지금 여기 텍스트를 보시면 이렇게 태그랑 그냥 대소 문자가 좀 혼용되어 있고 또 특수 문자도 이렇게 있는 걸 확인하실 수가 있죠.
如果您查看这里,可以看到使用正则表达式进行文本清理,现在看们看看到文本文文标签和和和大小写混杂,特殊字符号。
느낌표나 이렇게 누른색 표시 이제 이것들을 먼저 제거를 해줘야 좀 더 학습이 잘 되겠죠.
感叹号和这种颜色标记,我们需要先删除这清除,这样可学习更有效果会更好。。
Attendees 1 02:16
参会人员 1 02:16
총 3가지 과정을 진행을 해 줄 건데 먼저 이제 그를 진행한 태그를 없애고 그리고 이제 단어가 아닌 것들 그러니까 특수 문자나 기호를 제거하고 그리고 이렇게 소문자로 변환하는 과정을 거치게 해줍니다.
我们将进行 3 个步骤。首先,去除标签,然后删除非单词的特殊符号和标点,最后将文本转换为小写。
우선 태그를 제거하는 코드를 먼저 작성을 해 주시면
请先编写删除标签的代码
Attendees 1 02:54
与会者 1 02:54
공개 표현식을 활용해서 작성해 주시면 되겠죠. 얘는 이제 공백 처리도 아니고 아예 없애겠습니다.
请使用公开表达式来编写。我们现在要完全删除它,而不仅仅是处理空白。
Attendees 1 03:06
与会者 1 03:06
그리고 이번에는 이제 특수 문자랑 기호 같은 경우에는
这次我们来讨论特殊字符和符号的情况
Attendees 1 03:19
与会者 1 03:19
공백으로 진행해 주겠습니다.
我将以空白进行。
Attendees 1 03:26
与会者 1 03:26
이렇게 하시면 이제 총 세 가지 과정을 거쳐서 주어진 텍스트가 이제 프리 프로세싱이 되겠죠.
这样的话,现在您就已经通过三个步骤完成了给定文本的预处理。
얘를 실행을 해 주시면 이렇게 태그도 없어지고 이제 대문자가 다 소문자로 통일이 되고 달러 표시나 이렇게 느낌표가 없는 걸 확인할 수가 있습니다.
执行这个操作后,您可以看到标签已经消失,所有大写字母都已统一为小写,美元符号和感叹号也都不见了。
Attendees 1 03:50
与会者 1 03:50
그러면 얘를 이제 실제 리뷰 데이터에 한번 진행을 해볼 건데 우선 이제 첫 번째 영화에 대해서 리뷰를 가져와 주면 이렇게 볼 수가 있습니다.
那么现在我们将在实际的评论数据上进行,首先针对第一部电影的评论,可以这样查看。
그래서 보시면 이제 대소문자 같이 써져 있고 이제 태그도 있고 그리고 이제 기호도 같이 섞여 있네요.
因此,您可以看到现在大小写混在一起,现在还有标签,并且符号也混合在一起。
그러면 위에서 정의한 이 프리 프로세스에다가 이 리뷰를 넘겨주면 이렇게 깔끔하게 이제 클리닝 된 걸 확인하실 수가 있습니다.
如果将预处理步骤传递给这些评论,您可以确认已经干净地清理好了。
여기 보시면 이제 태그도 없어져 있고 그리고 대문자도 이제 소문자로 되어 있고 그리고 느낌표나 이제 콤마들도 없어진 걸 확인하실 수가 있습니다.
如果你看这里,标签已经消失,大写字母也已经变成小写,感叹号和逗号也都已经不见了。
이렇게 보시면 얘도 없어지는 거 그러면 이렇게 이제 전처리된 텍스트를 가지고 토크나이징을 수행해 줄 수가 있습니다.
如你所见,这些也都消失了,然后就可以对这样预处理过的文本进行分词了。
여기서 보시면 이제 주어진 텍스트가 이렇게 있는데 얘를 우선 이제 위에서 정의했던 프리 프로세스 함수를 사용해서 클리닝을 진행해 준다고 합니다.
在这里您可以看到,给定的文本已经存在,现在我们可以使用之前定义的预处理函数进行清理。
그럼 그대로 가져와서 이제 원하는 텍스트를 넣어주면 되겠죠.
然后直接获取并放入所需的文本即可。
Attendees 1 05:04
参会者 1 05:04
해 주시고 이 텍스트가 정의가 되어 있으니까 얘를 그대로 가져와 주면 되겠죠.
请按照定义的内容直接复制过来即可。
그래서 실행을 해 주시면 얘가 이제 원래 주어졌던 이 텍스트인데 이제 프리 프로세스를 통해서 전처리된 걸 확인하실 수가 있습니다.
所以,如果您执行它,您可以确认原始给定的文本现在已通过预处理进行了处理。
그러면 이 전 처리된 텍스트를 가지고 이제 토크나이징을 진행을 해 줄 건데 NLTK에서 이제 워드 토크 나이즈를 제공을 해 주기 때문에 얘를 가져와서 진행을 해 주시면 됩니다.
接下来,我们将使用这个预处理过的文本进行分词。由于 NLTK 提供了词语分词功能,所以您可以直接使用它来进行处理。
그래서 인포트에 온 얘를 그대로 작성해 주면 되겠죠.
所以可以直接将导入的内容原样编写。
Attendees 1 05:43
与会者 1 05:43
그리고 이제 프리 프로세스 된 텍스트를 사용을 한다고 했으니까 텍스트가 아니고 이 전 처리된 얘를 넣어주면 되겠죠.
既然说要使用预处理的文本,那么就把预处理后的文本放进去就可以了。
그래서 실행을 해 주시면은 이렇게 이제 프리퍼세스된 텍스트가 이렇게 토크나이징 돼서 출력되는 걸 확인하실 수가 있습니다.
所以当你执行时,你可以看到预处理后的文本已经被分词并输出。
Attendees 1 06:08
参会人员 1 06:08
그러면 이제 스테밍도 진행을 해볼 수가 있는데 스테밍 같은 경우에는 어간 추출이죠.
那么现在,我们可以进行词干提取,词干提取就是提取词根。
얘도 이제 NLTK에서 제공하는 얘를 사용을 해서 진행을 해 주시면 됩니다.
现在您可以使用 NLTK 提供的这个功能来进行操作。
우선 이렇게 객체를 생성을 해주고 저희가 이제 함수를 하나 정의를 해 줄 건데 이 토크 나이저 스테머 같은 경우에는 토크 나이징이랑 스테밍을 한 번에 이제 수행하는 그런 함수로 정의를 해 주려고 합니다.
首先,像这样创建对象,然后我们将定义一个函数,对于分词器和词干提取器,我们希望定义一个可以同时执行分词和词干提取的函数。
그러면 먼저 토크나이징 진행하는 코드를 작성을 해 주시면 되겠죠.
那么,首先可以编写执行分词的代码。
토크나이징 같은 경우에는 위에서 이제 여기 보시는 것처럼 워드 토크 아이즈 사용해서 진행을 했으니까 그대로 작성해 주시면 되겠죠.
对于分词,就像你在这里看到的,我们已经使用了 WordTokenizer 进行处理,所以你可以直接按照这种方式编写。
Attendees 1 06:58
与会人员 1 06:58
그리고 이제 인풋이 텍스트니까 그대로 작성해 줍니다.
然后现在输入的是文本,所以直接这样写。
그다음에 이제 리턴할 때 스테밍 된 걸 리턴을 해주고 싶은데요.
然后,现在在返回时,我想返回已经进行词干处理的内容。
스테밍은 이렇게 진행해 주시면 됩니다. 위에서 정의한 스테머 객체 가져와서 이제 그 안에 있는 스텝 메소드를 사용을 해주는데요.
词干处理可以这样进行。获取上面定义的词干处理器对象,然后使用其中的词干步骤方法。
Attendees 1 07:29
与会者 1 07:29
이렇게 해 주시면 이제 토크나이징 된 이 단어들이 하나씩 들어와서 이제 스테밍 돼서 리턴이 되겠죠.
如果您这样做,这些经过分词的单词就会逐个进来,然后进行词干提取并返回。
그러면 이렇게 정의한 토크 나이저 스테머 함수를 가지고 이제 사전 학습된 이제 프로세스된 텍스트를 진행을 해 줄게요.
那么,我们现在将使用这个已定义的分词器和词干提取器函数来处理预先处理过的文本。
Attendees 1 07:54
参会者 1 07:54
얘를 그대로 이렇게 가져와서 이제 이 텍스트니까 텍스트가 아니고
直接将这个带过来,现在这是文本,所以不是
Attendees 1 08:05
与会者 1 08:05
얘를 넣어주면 되겠죠. 이렇게 해서 실행을 해 주시면은 차이가 이렇게 보실 수가 있는데 이제 원래 샤이닝이었는데 샤인으로 되고 여기도 이제 라이스나 러닝 같은 경우가 라이크랑 러닝으로 이제 스테머가 된 걸 확인하실 수가 있습니다.
如果将它放入其中,就可以了。这样执行后,您可以看到差异,现在原本是"샤이닝",变成了"샤인",同样的,像"라이스"或"러닝"这样的词也变成了"라이크"和"러닝",您可以确认已经进行了词干提取。
Attendees 1 08:33
与会者 1 08:33
그다음에는 이제 스토월드 그러니까 이제 일반적으로 불용어라고 말을 하죠.
接下来是现在的故事世界,通常我们称之为停用词。
얘도 처리를 해 줄 수가 있습니다. NLTK에서 제공하는 이 스토벌즈를 가져와서 사용을 해 줄 수가 있는데 저희는 이제 리뷰 데이터가 영어니까 이제 영어에 대한 불용어를 불러와서 사용을 해볼게요.
这个也可以处理。我们可以使用 NLTK 提供的停用词,因为我们现在的评论数据是英语,所以我们将加载并使用英语的停用词。
그러면 이 과정을 통해서 이제 이거를 다운 받아주고 스토벌지에 있는 소드를 사용을 해서 영어에 대한 불용어를 가져와서 스톱에 저장을 해줍니다.
通过这个过程,现在我们将从存储库中下载并使用 Sword 获取英语的停用词,并将其保存到停用词中。
이렇게 실행을 해 주시면은 제가 이거 다운로드 받았으니까 이게 뜨고요.
如果这样执行,我已经下载了这个,所以它就会出现。
그리고 이것들이 이제 여기서 제공하는 영어에 대한 불량화 리스트입니다.
这是现在在这里提供的关于英语的不良列表。
Attendees 1 09:35
与会者 1 09:35
그러면 리뷰 데이터에 대해서 이제 이 블링 허드를 또 없애줘야겠죠.
那么现在我们需要去除这个布林哈德。
그래서 저희는 이제 불용어를 그러니까 스톱월즈를 제거하는 이 리무브 스톱월즈 함수를 정의를 해줄 건데 간단하게 작성을 해보겠습니다.
因此,我们现在将定义一个删除停用词的函数,我将简单地编写它。
Attendees 1 10:07
出席人员 1 10:07
이렇게 해 주시면 이제 텍스트가 여기에 없는 경우만 리턴이 되겠죠.
如果你这样做,现在只有在没有文本的情况下才会返回。
Attendees 1 10:19
参会人员 1 10:19
그래서 이 함수를 실행을 해보면 얘를 그대로 가져와서 작성을 해 줄게요.
所以我将执行这个函数,并按原样将其写出来。
Attendees 1 10:32
参会人员 1 10:32
그리고 이번에는 여기서 토크나이즈드 텍스트니까 토크나이징 된 텍스트를 가져와서 넣어주면 되겠죠.
这次我们可以把这里的分词文本,也就是分词后的文本,直接拿来放进去。
근데 저희는 이제 토크나이징이랑 스테밍이랑 한 번에 하는 함수를 뒤에서 이제 토크 나이저 스테머로 정의를 했기 때문에 얘를 가져와서 사용을 해 주시면 되겠죠.
因为我们现在已经在后面定义了分词和词干提取的函数,所以您可以直接调用它来使用。
얘를 사용하시거나 아니면 얘를 사용하셔도 상관없어요.
您可以使用这个,也可以使用那个,都没关系。
저는 얘를 그대로 가져올게요.
我将直接带走这个。
Attendees 1 11:08
参会人员 1 11:08
해서 실행을 해 주시면은 이제 원래는 이제 불용호 처리를 하기 전에 그러니까 스톱월드를 제거하기 전에는 이런 더 나 아니면 이지 이런 게 이제 나왔었는데 사실 엔드도 별 의미가 없죠.
如果执行的话,在消除停用词之前,这些像"这个"或"那个"的词是会出现的。事实上,这些词基本上没有什么意义。
이제 스토벌드를 제거를 하게 되면은 이렇게 이제 삭제가 된 걸 보실 수가 있습니다.
当我们删除停用词后,你就可以看到这些词被删除了。
Attendees 1 11:38
出席者 1 11:38
그러면 이렇게 이제 블로거까지 처리를 해주고 그다음에 이제 포스 태깅이니까 품사를 태깅 해 줄 수가 있습니다.
那么,现在处理博主,然后进行词性标注,可以标记词性。
얘도 이제 NLTK에서 이렇게 포스 태그로 제공을 해주고 있고 얘는 아까 실행을 했었죠.
这个现在也在 NLTK 中提供了词性标注,我们之前已经执行过了。
다시 실행을 해볼게요.
我将再次执行。
Attendees 1 12:01
参会人员 1 12:01
이렇게 실행을 해 주시면은 저희가 원하는 얘가 이제 다운로드 된 걸 확인하실 수가 있고
如果您这样执行,您可以确认我们想要的内容已经下载完成
Attendees 1 12:13
参与者 1 12:13
여기서 보시면 이제 토크나이즈 된 텍스트에 대해서 이제 플라 태깅을 진행한다고 되어 있네요.
在这里,您可以看到现在已经对分词后的文本进行了词性标注。
그대로 해주면 되겠죠. 이제 NLTK에서 인포트해 온 해시태그를 그대로 사용을 해 주시고
按原样处理就可以了。现在直接使用从 NLTK 导入的哈希标签
Attendees 1 12:41
与会者 1 12:41
이렇게 이제 프리 프로세스 한 텍스트를 이제 다시 워드 토크 나이즈에 넣어서 이거에 대한 이제 품사를 확인해 볼 수가 있습니다.
现在可以将预处理过的文本放入词语分词器中,然后确认其词性。
얘를 실행을 해 주시면 이렇게 나오는 걸 확인하실 수가 있어요.
执行它后,您可以看到如下结果。
그러면 이제 토크나이즈 된 단어에 대해서 이것에 맞는 이제 품사가 옆에 출력이 되는 걸 확인하실 수가 있습니다.
现在,您可以看到标记化的单词及其相应的词性标注已经出现在旁边。
지금까지는 이제 영어 그러니까 잉글리시 데이터셋을 사용을 해서 이제 전처리를 진행을 해봤는데 이번에는 이제 한국어 어 무비 위비 데이터를 사용을 해서 진행을 해볼게요.
到目前为止,我们一直在使用英语数据集进行预处理,这次我们将使用韩国语电影评论数据集来进行处理。
얘도 이제 같이 올려드렸던 이 데이터셋을 가지고 와서 사용을 해 주시면 됩니다.
现在您可以使用这个数据集来进行使用。
실행을 해 주시면은 이제 피처는 똑같이 이제 리뷰랑 센티멘트 이렇게 두 개가 있는 걸 확인하실 수가 있습니다.
执行后,您可以确认要素与评论和情感是相同的两个。
쉐이을 확인해 보면 20만 개가 있다고 하네요. 얘도 똑같이 이제 첫 번째 그러니까 두 번째죠.
如果查看 Sheil,它有 20 万个。现在这是第一个,或者说是第二个。
얘를 확인을 해보면 이렇게 출력이 되는 걸 확인하실 수가 있습니다.
如果检查这个,你可以看到它是这样输出的。
직설적인 리뷰죠.
直白的评论。
Attendees 1 14:01
与会者 1 14:01
그리고 저희가 아까 이제 정의했었던 프리 프로세서 함수를 가지고 와서 요 리뷰에 대해서 클리닝을 진행을 해 줄 건데 진행을 해 주시면은 요렇게 이제 결과가 나오는 거 확인하실 수가 있습니다.
然后,我们将使用之前定义的预处理函数来对这个评论进行清理,你可以看到结果就是这样的。
근데 얘는 이제 영어에서 사용했었던 이제 정규 표현식 기반 전처리 함수인데 얘를 이제 한글에서도 동일하게 적용을 할 수는 있지만 약간 좀 적절하지 않죠.
但是这个是之前在英语中使用的基于正则表达式的预处理函数,虽然可以在韩语中同样使用,但是有点不太适当。
한글의 경우에는 약간 형태소 분석기가 좀 필요하다고 느끼실 수가 있습니다.
对于韩语来说,您可能会感觉需要一些形态分析器。
그래서 이번에는 이제 한국어에 대해서 이제 토크어랑 똑같이 이제 스테밍을 진행을 해볼 건데 주어진 텍스트는 이 텍스트라고 합니다.
因此这次将对韩语进行与英语类似的分词和词干提取处理,给定的文本就是这个文本。
Attendees 1 14:52
与会者 1 14:52
얘에 대해서 이제 토크나이징을 단순한 그냥 스플릿 함수를 스플릿 메소드를 사용해서 이제 진행을 해볼 수가 있는데 얘를 실행을 해 주시면은 이렇게 이제 단순하게 이렇게 보시면 띄어쓰기 기준으로만 나눠진 걸 확인하실 수가 있습니다.
对于这个,现在可以使用简单的拆分函数或拆分方法进行分词。如果执行这个,你会看到它只是按照空格简单地分开了。
이러면 이제 실제 단어나 이제 의미 단위가 아니고 그냥 띄어쓰기로 구분되는 이제 그런 조각이 출력이 되는 거겠죠.
这样,现在输出的就不再是实际单词或意义单位,而是仅仅按空格分隔的这种碎片了。
그래서 한국어를 기반으로 생각을 해봤을 때 이제 의미 단위로 적절하게 나누지 못하는 걸 확인하실 수가 있습니다.
所以当我们基于韩语思考时,可以确认无法适当地按意义单位进行分割。
그래서 이제 위에서 NTK랑 그리고 코엔l 파일을 설치를 했었는데 이 코엔l 파일 같은 경우에는 이제 한국어 자연 문화 처리를 위해서 사용을 하는 그런 패키지입니다.
所以现在我们已经安装了 NTK 和 KoNLP 文件,KoNLP 文件是用于韩语自然语言处理的包。
여러 형태소 분석기의 클래스를 가지고 있는데 그중에서 이번에는 이제 okt랑 그리고 코코마 클래스를 사용을 해서 실습을 진행을 해보겠습니다.
它包含了多个形态素分析器的类,这次我们将使用 OKT 和 Komoran 类来进行实践。
okt를 가져와 줄 수가 있겠죠.
能带来 okt 吧。
Attendees 1 16:04
与会者 1 16:04
여기서 보시면 이제 okt에 이걸 사용을 해서 이제 텍스트를 토크나이징 해 주라고 하는데 그러면 이렇게 okt 객체를 가져왔으니까 똑같이 넣어주면 되겠죠.
在这里,如果您看到,我们现在使用 OKT 来对文本进行分词,那么既然我们已经获取了 OKT 对象,就可以直接使用了。
케이키에
关键词
Attendees 1 16:36
参会人员 1 16:36
얘는 이제 KT를 사용을 해서 문장을 또 정규화를 하고 그리고 스테밍도 진행을 해 준다는 의미겠죠.
现在这个是使用 KT 来进行句子标准化,并且还进行了词干提取,对吧。
얘를 실행을 해 주시면 이렇게 이제 스플릿을 사용해서 토크나이징을 진행을 하면은 단순하게 띄어쓰기로 구분이 되는데 이제 okt에서 제공하는 얘를 사용을 해서 진행을 해주면 이렇게 좀 더 조사가 분리되어 있는 걸 확인하실 수가 있습니다.
如果您执行这个,现在就可以使用拆分进行分词,简单地按空格区分。但是如果使用 OKT 提供的方法进行处理,您可以看到更多地助词被分离出来。
그리고 이제 꾸었습니다도 이렇게 꿈을 꾸다 할 때 이 꾸다로 출력이 된 걸 확인하실 수가 있죠.
而且现在"做梦"也可以这样,当说到"做梦"时,您可以看到它被输出为"做"这个词根。
그러면 이번에는 okt가 아니고 꼬꼬마로 사용을 해보겠습니다.
这次我们将使用꼬꼬마而不是 okt。
얘도 이렇게 객체 불러와서 이제 인포트에서 객체 생성해 줄 수가 있고요.
同样,可以通过导入来创建对象,并像这样调用对象。
얘도 이제 코코마에서 제공하는 이 메소드를 사용을 해서 토크나이징을 진행을 해보겠습니다.
现在我将使用 Cocoma 提供的这个方法来进行分词。
Attendees 1 17:38
与会者 1 17:38
똑같이
一模一样
Attendees 1 17:44
与会者 1 17:44
이렇게 실행을 해 주시면 되고 그 결과를 보면은 이제 okt랑 유사하지만 조금 다른 부분이 있죠.
如果您这样执行,结果将会显示出与 OKT 类似但又略有不同的部分。
얘보다는 조금 더 얘가 세분화된 단위로 쪼개져 있는 것을 확인하실 수가 있습니다.
您可以看到,这个分词结果比之前的更加细致,被分解为更小的单位。
여기 보시면 이제 보었습니다가 이제 okt를 사용을 해서 진행을 했을 때는 그냥 단순하게 꾸다로 출력이 되었는데 이제 꼬꼬마에서 제공하는 이를 사용을 해보면 이렇게 분리돼서 출력이 되는 걸 확인하실 수가 있어요.
在这里,如果您看的话,之前使用 OKT 处理时只是简单地输出了"꾸다",但现在如果使用꼬꼬마提供的这个工具,您可以看到它被分割并输出。
그러면 아까 위에서 진행했던 것처럼 이렇게 형태소 단위로 나눴으면은 또 품사 태깅을 진행해 볼 수가 있겠죠 얘도 이제 okt랑 꼬꼬마에서 둘 다 제공을 해 주기 때문에 둘 다 확인을 해보겠습니다.
就像刚才我们进行的那样,如果按照形态素单位进行了分割,那么接下来我们也可以进行词性标注。因为 OKT 和꼬꼬马都提供这个功能,所以我们将同时确认。
넣어주면 이제 KT에서 제공하는 얘를 사용해서 품사 태깅을 해볼게요.
如果放入,我将使用 KT 提供的方法进行词性标注。
Attendees 1 18:47
出席人员 1 18:47
이렇게 진행을 해 주시면
如果您这样进行下去
Attendees 1 18:53
参会人员 1 18:53
지금 이제 형태소랑 이제 품사 단위가 이렇게 묶여서 출력이 되는 거 확인하실 수가 있습니다.
现在您可以看到形态素和词性单位已经这样捆绑在一起输出了。
무어 명사랑 조사 이렇게 이제 동사랑 출력이 되는 걸 확인하실 수가 있네요.
可以看到现在名词和助词、动词等已经输出了。
그러면 동일하게 꼬꼬마로도 진행을 해보면
那么,我们也尝试用 KoKoMa(分词工具)进行处理
Attendees 1 19:15
与会者 1,19:15
이렇게 출력이 되는 걸 확인하실 수가 있죠. 얘보다는 이제 okt를 사용한 것보다는 코코마를 사용한 게 조금 더 이제 복잡하고 좀 더 세분화돼서 나오는 걸 확인하실 수가 있습니다.
你可以看到这样的输出。现在与使用 okt 相比,使用 cocoma 可以看出更加复杂和更细致的结果。
Attendees 1 19:36
参会者 1 19:36
그러면 이제 이런 식으로 이제 품사 패딩을 진행을 해줬는데 호코마에서 제공하는 얘를 사용을 하게 되면은 이제 명사만 또 추출할 수가 있습니다.
那么现在以这种方式进行词性填充,如果使用 Hokoma 提供的方法,就可以提取出名词。
Attendees 1 19:49
参会人员 1 19:49
여기 보시면 이제 하늘을 나는 아름다운 꿈을 꾸었습니다.
在这里,你看到我做了一个飞翔在天空中的美丽梦想。
여기에서 명사가 총 3개인데 이걸 사용을 하면은 얘만 출력이 됩니다.
在这里有总共 3 个名词,如果使用这些,它们只会被输出。
시 텍스트를 넣어주고 수행을 해 주시면 되는 거죠.
请在这里放入诗歌文本并执行。
그러면 이제 KT에서 아까 명사라고 정의되었던 얘랑 얘랑 얘만 출력이 되는 걸 확인하실 수가 있습니다.
这样,您现在可以确认 KT 中之前定义为名词的那些只有这几个会被输出。
이 메소드를 사용하면 좋은 게 이제 띄어쓰기가 좀 잘 되지 않은 그런 텍스트에 대해서도 잘 가져오는 걸 확인하실 수가 있는데요.
使用这种方法的好处是,现在您可以确认对于一些间距不太好的文本,也能很好地提取。
이게 이제 대표적인 이제 띄어쓰기에 따라서 뜻이 두 가지로 나눠지는 그런 문장인데
这是一个典型的句子,根据间距的不同,意思可以分为两种。
Attendees 1 20:37
参会人员 1 20:37
얘도 이제 이 메소드를 사용을 해서 출력을 해주면 이렇게 나오는 걸 확인하실 수가 있습니다.
现在您也可以使用这个方法进行输出,您可以看到是这样的结果。
Attendees 1 20:55
参与者 1 20:55
이번에는 이제 어 벡터로 한번 이제 문장들을 표현을 해 볼 건데 백업 월즈 모델을 사용을 해서 진행을 해보겠습니다.
这次我们将使用词袋模型来表示句子向量,并进行处理。
이 모델은 어떤 거냐면 여기서 보시는 것처럼 이제 문장을 이제 단어 빈도수 기반 벡터로 표현을 하게 됩니다.
这个模型是这样的,就像你在这里看到的,现在将句子转换为基于词频的向量表示。
두개의 문장이 있고 아니 단어가 있고 여기서 보시면 이제 이 문장에 대해서 아래처럼 나타나실 수가 있는데 얘랑 도그랑 이즈랑 테이블 더는 이제 문장에서 한 번씩 나타났기 때문에 이렇게 나올 수가 있고 이제 r이랑 캣이랑 나오는 등장하지 않기 때문에 이제 0으로 정의를 해주게 됩니다.
有两个句子,并且没有单词,从这里可以看出,对于这个句子,可以像下面这样表示,因为狗和是和桌子等词在句子中各出现一次,所以可能会这样表示,而 r 和猫没有出现,因此现在将其定义为 0。
Attendees 1 21:53
出席者 1 21:53
그러면 이제 실제 문장에 대해서 이렇게 진행을 해볼 건데 일단 이렇게 문장들을 넌 파이 배열 형태로 한번 표현을 해볼게요.
现在让我们针对实际句子进行处理,首先将这些句子以 NumPy 数组的形式表示出来。
그럼 총 3개의 문장이 있죠. 그리고 이제 사이킬런에서 제공하는 걸 살펴보시면 사이킬런에서 제공하는 이 카운트 벡트라이저를 사용을 하게 되면은 이제 단어의 빈도 수를 기반으로 이제 문장이랑 단어의 행렬 매트릭스를 구성할 수 있게 해줍니다.
总共有 3 个句子。当使用 scikit-learn 提供的计数向量器时,它可以基于单词的频率构建句子和单词的矩阵。
그래서 카운트 벡터라이저 가져와서 객체 생성을 해주고 이 카운트를 사용하면 되겠죠.
所以,我们可以引入计数向量化器并创建对象,然后直接使用这个计数。
그러면 이 카운트를 넣어주고 이제 단어의 빈도 수를 기반으로 계산을 하기 때문에 이걸 그대로 넣어주면 되겠죠.
那么,将这个计数放入,因为它是基于单词频率进行计算,所以直接放入即可。
Attendees 1 22:49
与会者 1 22:49
이렇게 수행을 해 주게 되면은 이제 요 독스에 있는 이 문장들에 대해서 이제 단어의 등장 일수 팩터로 변환이 되게 됩니다.
如果这样执行,现在就可以将文档中的这些句子转换为单词出现次数的因子。
이렇게 해서 실행을 해 주시게 되면은 결과는 이제 희소 행렬 형태로 저장이 되는데 보시면
这样执行的话,结果现在将以稀疏矩阵的形式保存,您可以看到
Attendees 1 23:21
参会人员 1 23:21
이 문장들에 대한 이제 단어 사전을 또 확인해 볼 수가 있습니다.
现在可以查看这些句子的词典。
얘를 실행을 해 주시면은 이제 각 단어가 이 벡터에서 이제 어떤 인덱스에 해당하는지를 보여줍니다.
如果执行此操作,它将显示每个单词在向量中的相应索引。
Attendees 1 23:42
与会者 1 23:42
그리고 아까 이 결과를 가져와서 확인을 해보면
然后把刚才的结果带来确认一下
Attendees 1 23:51
与会者 1 23:51
이렇게 이제 다큐멘트랑 탑 매트릭스로 출력이 되는 거 확인하실 수가 있습니다.
现在您可以确认文档和顶部矩阵是这样输出的。
Attendees 1 24:01
与会者 1 24:01
여기서 보시면 이제 각 위치에 맞춰서 출력이 되는 걸 확인하실 수가 있어요.
在这里,你可以看到每个位置都按照相应的位置输出。
Attendees 1 24:18
与会者 1 24:18
그러면 이렇게 이제 각 빈도 수를 가지고 이제 매트릭스로 표현하는 방법도 있고 아니면 이제 TF IDF 벡터로 변환하는 방법도 있습니다.
然后,现在可以用频率来表示矩阵,或者转换为 TF-IDF 向量。
이제 TF 같은 경우는 이제 특정 문서 뒤에서 단어 키가 등장한 횟수를 나타내는 거고요.
现在,TF 是指特定文档中某个词出现的次数。
그리고 이제 IDF 같은 경우에는 전체 문서 수에 대해서 이제 단어 t가 등장한 이제 문서 수로 나눈 다음에 이렇게 로그를 취한 값이겠죠.
现在对于 IDF 来说,是将总文档数除以单词 t 出现的文档数,然后取对数。
그래서 이제 tfidf 같은 경우에는 이 두 가지의 값을 곱한 것으로 이제 각 단어의 중요도를 나타내는 결과입니다.
所以对于 TF-IDF,是将这两个值相乘,以表示每个单词的重要性。
얘 같은 경우는 이제 문서 빈도랑 그리고 이제 전체 문서에서의 희소성을 모두 반영하겠죠.
这种情况现在将反映文档频率和整个文档中的稀疏性。
앞으로 벡터가 좀 많이 나올 거기 때문에 이렇게 얘를 실행을 해서 이제 출력할 때 이제 소수점 둘째 자리까지 보이도록 한번 설정을 해주고 넘어갈게요.
由于向量将来会很多,所以我们这样执行并设置输出时显示到小数点后两位,然后继续。
Attendees 1 25:25
参会人员 1 25:25
TF IDF 벡터 같은 경우에도 이제 사이클론에서 제공하는 TF IDF 벡터라이저를 사용해서 진행을 해 주실 수가 있는데 얘를 이제 인포트해서 이렇게 가져와서 객체를 만들어주면 됩니다.
对于 TF IDF 向量,您也可以使用旋风(Cyclone)提供的 TF IDF 向量化器进行处理。只需将其导入并创建对象即可。
그러면 똑같이 이제 TF IDF를 하는데 저희가 원하는 독스에 대해서 이제 피 트랜스폼을 해주면 되겠죠 이렇게 해 주시고 이제 위에서 이제 메고 월드랑 똑같이 단어 사진을 확인을 해 줄게요.
然后现在像这样对我们想要的文档进行 TF IDF 处理,然后像之前一样检查单词图像。
Attendees 1 26:02
参会人员 1 26:02
실행을 해 주시면은 요렇게 이제 단어 사전이 만들어진 걸 확인하실 수가 있습니다.
如果执行的话,您可以看到已经创建了这样的词典。
Attendees 1 26:12
参会者 1 26:12
그리고 얘 같은 경우에도 이제 매트릭스를 확인을 할 수가 있는데 똑같이
并且在这种情况下也可以确认矩阵
Attendees 1 26:22
参会者 1 26:22
출력을 해서 확인할 수가 있겠죠. 아까는 이제 등장한 횟수이기 때문에 정수 형태로 이렇게 매트릭스가 표현이 됐는데 여기서는 이제 빈도 수로 가중치를 주기 때문에 이런 형태로 이제 매트릭스가 출력된 걸 확인하실 수가 있습니다.
通过输出可以确认。之前出现的次数是以整数形式表示的矩阵,而在这里是基于频率给予权重,因此矩阵可以以这种形式输出。
Attendees 1 26:50
参会者 1 26:50
근데 이제 사이클론에서 제공하는 이 TF IDF 벡터라이저를 사용을 하게 되면은 이제 위에서 진행했었던 이제 프리 프로세스이랑 이제 스테밍이랑 이제 불용 처리를 모두 한 번에 수행할 수도 있습니다.
现在,如果使用气旋提供的 TF IDF 向量化器,就可以一次性完成之前进行的预处理、词干提取和停用词处理。
Attendees 1 27:11
与会者 1 27:11
여기서 보시면 일단 이렇게 3개가 정의되어 있는데 여기서 보시면 악센트를 제거할 건지 말 건지 그리고 소문자로 변환을 할 건지 말 건지 그리고 따로 토크나이저를 사용을 할 건지 이렇게 나타나게 됩니다.
从这里可以看到,首先定义了 3 个选项,您可以看到是否要去除重音,是否要转换为小写,以及是否要使用单独的分词器。
그래서 이제 프리 프로세싱이랑 스테밍이랑 이제 스톱월드를 제거할 수 있는데 여기서는 이제 위에서 저희가 정리했었던 그 함수들을 가져와서 사용을 해 줄게요.
因此现在可以进行预处理、词干提取,并可以去除停用词。在这里,我们将使用之前整理的那些函数。
Attendees 1 27:40
参会者 1 27:40
그리고 스테밍 같은 경우에도 이제 토크 나이저 스탬머를 정의를 했었죠.
而且在词干提取的情况下,我们已经定义了分词器和词干提取器。
Attendees 1 27:58
与会者 1 27:58
그리고 스타버즈는 이제 아까 위에서 영어에 대한 이제 스타벌즈를 가져와서 여기다 저장을 해줬으니까 이렇게 정의를 할 수가 있습니다.
而且,现在星巴兹已经从之前获取了英语的星巴兹并保存在这里,所以可以这样定义。
그러면 이렇게 TF IDF 객체를 생성을 해서 다시 확인을 해 줄게요.
然后创建 TF IDF 对象,我来重新确认一下。
Attendees 1 28:23
与会者 1 28:23
이렇게 실행을 해 주시면은 이제 위에서 방금 이제 정의했던 TF IDF 함수에 대해서 객체에 대해서 이제 이 텍스트 데이터로 이제 피팅을 하고 이제 변환한 그 결과가 여기에 저장이 되겠죠.
如果您这样执行,那么现在就可以对之前刚刚定义的 TF IDF 函数对象使用这个文本数据进行拟合,然后转换,结果将存储在这里。
똑같이 이 결과로부터 확인을 해줄게요.
我将从这个结果中同样确认。
Attendees 1 28:57
参会人员 1 28:57
이렇게 실행을 해 주시면은 이렇게 단어 인덱스를 또 확인을 하실 수가 있고 그다음에 이제 TF IDF 매트릭스도 확인을 해 줄 수가 있습니다.
如果你这样执行,你可以确认单词索引,然后还可以确认 TF IDF 矩阵。
Attendees 1 29:13
与会者 1 29:13
이렇게 실행을 해 주시면 되겠네요.
这样执行就可以了。
Attendees 1 29:21
与会者 1 29:21
이제 다른 점은 여기서는 그냥 이제 얘를 그대로 가져와서 TF IDF를 진행을 했기 벡터 변환을 진행을 했기 때문에 불량화나 이런 게 처리가 안 되어 있는데 여기서는 이제 저희가 과정자를 추가했기 때문에 이제 단어 사전도 좀 적어져 있고 이렇게 변환이 된 걸 확인하실 수가 있습니다.
现在,与之前不同的是,这里直接进行了 TF-IDF 向量转换,没有进行预处理或清洗,但在这里,我们添加了处理过程,因此词典也相应缩减,你可以看到这种转换。
Attendees 1 29:48
参会人员 1 29:48
그러면 그다음에는 이제 이렇게 클래스피케이션을 수행을 해볼 건데 알고리즘을 통해서 여기 같은 경우에는 이제 SMS라고 되어 있는데 텍스트들이 이제 긍정인지 부정인지로 구분하는 센티미터 애널리시트를 진행을 해보겠습니다.
接下来,我们将通过算法执行分类,在这种情况下,比如这里标注为 SMS,我们将进行情感分析,以区分这些文本是正面还是负面的。
일반적으로 그냥 감성 분류 이렇게도 부르고 있죠.
通常也这样称呼情感分类。
사용할 데이터셋은 이제 위에서 했었던 im DB 무비 로비 데이터를 다시 한 번 가져와서 진행을 해 줄게요.
将使用的数据集是再次使用之前的 IMDB 电影评论数据。
그러면 똑같이 이제 리뷰랑 이렇게 센티멘트 피처 있는 걸 확인하실 수가 있죠.
然后你就可以确认这个评论和情感特征了。
그다음에 이제 트레이닝이랑 테스트 데이터셋을 정의를 해줄 건데 여기서 보시면 이제 처음에 천 개의 텍스트에 대해서 이제 트레이닝을 진행을 하고 그리고 이제 뒷부분에 이제 4만 9천부터 천 개에 대해서 테스트를 진행을 해줍니다.
接下来我们将定义训练和测试数据集。从这里你可以看到,首先对前一千个文本进行训练,然后从 4 万 9 千开始对另外一千个文本进行测试。
그래서 이제 쉐입을 확인을 해 주면 이제 스트레인에 대해서는 이제 천 개만 이렇게 된 걸 확인하실 수가 있죠.
所以现在您可以确认形状,关于应变,现在就是这样的一千个。
Attendees 1 31:01
参会人员 1 31:01
그리고 이제 양반자 리뷰를 확인을 해 주시면은 이렇게 나오는 걸 확인하실 수가 있습니다.
现在,您可以检查阳班子评论,并确认它是这样显示的。
Attendees 1 31:13
与会者 1 31:13
얘는 이제 전처리가 아직 안 된 그런 문서죠. 얘를 가지고 이제 베터라이제이션을 진행을 해 주면 똑같이 이제 사이클럼에서 아까 제공했었던 tfidf 벡트라이저를 불러와서 진행을 해 줄게요.
这是一个尚未进行预处理的文档。现在,我们将使用相同的方法,从 scikit-learn 中调用之前提供的 TF-IDF 向量化器来进行处理。
이제 원래는 이렇게 이 두 과정을 거치고 저희가 이제 프리 프로세서랑 이제 토크나이저랑 그리고 스토어 바이저 그러니까 블로그 처리를 진행을 해줬는데 이렇게 하면은 이제 시간이 조금 오래 걸리기 때문에 조금 더 간단한 방법을 사용을 해보겠습니다.
原本我们会经历这两个过程,即预处理器、分词器和停用词处理,但是这样会比较耗时,所以我们将尝试一种更简单的方法。
이렇게 이제 맥스 df를 0.1로 설정을 해주게 되면은 문서에서 이제 10% 이상 등장하는 단어 그러니까 전체에 대해서 이제 10% 이상 등장하는 단어들을 무시하게 됩니다.
如果将最大文档频率(max df)设置为 0.1,那么将忽略在文档中出现超过 10%的单词,也就是在整个文档中出现超过 10%的单词。
그러면 이제 불용화랑 그러니까 스토월즈랑 좀 유사한 효과를 볼 수도 있겠죠.
这样的话,可能会产生类似于停用词的效果。
이렇게 이제 tfidf 객체를 생성을 해주고 액터마이제이션을 진행을 해볼게요.
现在让我们创建一个 TF-IDF 对象并进行操作。
Attendees 1 32:19
与会者 1 32:19
얘는 이제 텍스트 트레인 데이터니까 이제 스트레인에 대해서 피팅이랑 트랜스폼을 진행을 해주고 그다음에 이제 테스트 데이터에 대해서는 이제 피팅 말고 트랜스폼만 진행을 해주면 되겠죠.
因为这是文本训练数据,所以现在要对训练数据进行拟合和转换,然后对测试数据只需进行转换,不需要拟合。
Attendees 1 32:38
与会者 1 32:38
이렇게 실행을 해 주시면 됩니다. 그러면 이제 여기에 따라서 이제 벡터가 변환이 돼서 여기에 저장이 되어 있겠죠.
如果您这样执行,就可以了。然后,向量就会按照这里的方式转换并存储在这里。
근데 이 결과 값은 이제 스퍼스 매트릭스이기 때문에 저희는 댄스 매트릭스로 변환을 해서 사용을 해볼게요.
但是这个结果值是稀疏矩阵,所以我们将把它转换为密集矩阵来使用。
Attendees 1 33:10
与会者 1 33:10
테스트 데이터도 똑같이 해주면 되겠죠.
测试数据也可以这样做。
Attendees 1 33:17
与会者 1 33:17
이렇게 해서 진행을 해 주시면은
如果您这样进行的话
Attendees 1 33:24
出席人员 1 33:24
이렇게 아웃풋이 나온 걸 확인하실 수가 있습니다.
这样您就可以看到输出结果了。
Attendees 1 33:38
与会者 1 33:38
그러면 이번에는 이제 많이 등장하는 이제 단어뿐만 아니라 레어한 그러니까 많이 등장하지 않는 그런 희소한 단어도 추가적으로 제거를 해볼 건데 똑같이 이제 토크 와이저랑 스토버즈는 정의를 해주지 않고 맥스 df랑 이제 이번에는 민 df도 설정을 해 줄게요.
然后这次我们不仅要删除经常出现的词,还要删除那些很少出现的罕见词。同样地,我们将使用分词器和停用词,不需要定义,并设置最大文档频率和这次的最小文档频率。
XDF는 이제 10%로 설정을 해주고
XDF 现在设置为 10%
Attendees 1 34:06
参会人员 1 34:06
민 디프는 이제 10으로 설정을 해서 이제 최소 이제 10개 이상 등장하지 않는 그런 많이 나오지 않는 단어들도 제거를 해줍니다.
现在将最小值设置为 10,删除不经常出现的单词,即不超过 10 个的单词。
그럼 이렇게 객체를 생성을 해서 똑같이 이제 피 트랜스폼이랑 트랜스폼을 해주면 되겠죠.
然后通过这样创建对象,像之前的拟合变换和变换一样处理就可以了。
Attendees 1 34:36
与会者 1 34:36
게터 실행을
执行获取器
Attendees 1 34:45
出席人员 1 34:45
이렇게 해서 실행을 해 주시면은 트레인 데이터랑 테스트 데이터가 이제 변환이 돼서 여기에 저장이 되겠죠.
这样执行的话,训练数据和测试数据就会被转换并保存在这里。
얘도 이제 벤스 매트리스로 변환을 해서 테이블 출력을 해보면 단어의 수가 위에서 보시면 이제 똑같이 이제 천 개였지만 여기서는 이렇게 만 8천 개 정도 되어 있고 아래에서는 이제 1800개로 줄어든 걸 확인하실 수가 있습니다.
现在如果将这个也转换为本斯矩阵并输出表格,单词数量在上面看起来是原来的一千个,但在这里大约是八千个,而在下面减少到了 1800 个,你可以看到这一点。
그리고 다시 이제 0번째 리뷰를 확인을 해보면 원래는 이런 형태를 가지게 되는데 얘를 이제 벡터라이제이션 한 결과를 확인을 해보면 이렇게 출력이 되는 걸 확인하실 수가 있습니다.
然后再次检查第 0 个评论,它本来是这种形式,如果查看向量化的结果,你可以看到它是这样输出的。
대부분의 이제 값이 0이고 그리고 이제 특정한 위치만 이제 몇 개만 이제 0이 아닌 그런 결과가 보이죠.
现在大多数值为 0,并且现在只有特定位置的几个值不为 0,就会看到这样的结果。
그러면 저희는 이 텍스트를 이제 이 벡터로 변환을 했기 때문에 이 벡터를 가지고 이제 로지스틱 획일화 그리고 디시전 트리 진행을 해 보겠습니다.
既然我们已经将这个文本转换为向量,那么我们就用这个向量来进行逻辑回归和决策树。
Attendees 1 35:51
参会人数 1 35:51
똑같이 사이클론에서 이제 로지스틱 리그레션을 불러와 주고 그래서 보시면 이제 엘트 레글라이제이션을 적용을 한 로지스틱 회기를 사용한다고 되어 있는 건에 맞게 작성을 해줍니다.
以相同的方式从气旋中调用逻辑回归,因此如果您查看已应用 L2 正则化的逻辑回归,则按照此要求进行编写。
Attendees 1 36:16
与会者 1 36:16
이렇게 객체를 생성을 해주고 피팅을 시켜주면 되겠죠.
这样创建对象并进行拟合就可以了。
일반 트레인 데이터가 아니고 이제 베터라이제이션 한 엑스트레인 벡터를 넣어줄게요.
这不是普通的训练数据,现在我将放入经过特征化的训练向量。
그리고 이제 와 트레인은 원래 이제 정답 레이블이죠.
然后现在的训练数据是原始的标签。
이렇게 실행을 해 주시면 됩니다. 그러면 지금은 이제 로지스틱 객체를 만들어서 피팅만 시켰는데 이제 트레인이랑 테스트 데이터에 대해서 어큐러시도 확인을 해볼게요.
如果您这样执行,就可以了。现在,我们已经创建了逻辑对象并进行了拟合,接下来我将检查训练和测试数据的准确性。
Attendees 1 36:58
与会者 1 36:58
이 트레인 데이터에 대한 어큐러시는 실행을 해 주시면은 0.965 정도가 나오고
对于这个训练数据的准确率,如果执行的话,大约会达到 0.965
Attendees 1 37:18
与会者 1 37:18
이제 테스트 데이터에 대한 이제 어큐러시는 0.812 정도 나온다고 보이네요.
现在看起来测试数据的准确率大约是 0.812。
그러면 이렇게 이제 학습된 로지스틱 회기를 가지고 예제를 통해서 한번 분류를 진행을 해보겠습니다.
那么我们将使用这个已经学习好的逻辑回归模型,通过一个例子来尝试进行分类。
이렇게 이제 세 가지 세 개의 문장이 되어 있는데 얘를 그대로 넣어줄 수는 없고 먼저 벡터화를 진행을 해야 되겠죠.
现在这三个句子已经存在了,但是不能直接使用,需要先进行向量化处理。
위에서 정리했던 이제 TF IDF를 가지고 와서 해줄 건데 얘는 이제 프리딕션하는 예제니까 피팅은 아니고 트랜스폼만 진행을 해 주겠죠.
我们将使用之前整理的 TF-IDF 来处理,因为这是一个预测示例,所以不是拟合,而是只进行转换。
테스트 데이터랑 마찬가지니까
与测试数据一样
Attendees 1 38:02
出席者 1 38:02
진행을 하시면 요 이제 문장들이 벡터가 돼서 여기에 저장이 되겠죠.
当你继续进行时,这些句子会被转换成向量并存储在这里。
그리고 이제 라벨을 예측을 해보면
然后现在我们来预测标签
Attendees 1 38:21
参会人员 1 38:21
위에서 이제 피팅했던 이 로지스틱을 그대로 가져와서 사용을 해주겠죠.
我们将直接使用之前拟合的逻辑回归模型。
Attendees 1 38:30
与会者 1 38:30
그러면 이게 0 아니면 이제 1로 출력이 되는데 얘를 저희가 좀 더 보기 쉽게 이렇게 negative랑 positive로 출력을 하게 되면은 실행을 해 주시면은 이제 첫 번째 리뷰에 대해서는 이제 negative라고 되어 있고 그리고 두 번째랑 세 번째 문장에 대해서는 이제 긍정적인 그런 결과가 나오는 걸 확인하실 수가 있습니다.
如果这个是 0,否则就输出为 1,如果我们把它更容易看懂地显示为 negative 和 positive,那么执行后,您可以确认第一条评论显示为 negative,而第二条和第三条句子显示为积极的结果。
그냥 이렇게 봐도 이제 부정이고 긍정이고 긍정 관점 이번에는 이제 디시전 트리를 가지고 진행을 해볼게요.
不管怎么看,现在都是否定和肯定,肯定的观点,这次我们将使用决策树来进行。
똑같이 사이클론에서 디시전 트리 클래시 파이어를 불러와 주면 되는데 이때 이제 세팅은 이제 맥스 덴만 20으로 설정을 해 줄게요.
同样,在 Cyclone 中调用决策树分类器,这时我们将最大深度设置为 20。
Attendees 1 39:20
参会者 1 39:20
이렇게 하시고 이제 기체를 생성을 해서 피팅만 시켜주면 되겠죠.
像这样操作,然后现在生成气体,只需进行拟合即可。
Attendees 1 39:34
与会者 1 39:34
그래서 실행을 해 주시면은 이제 트레인 데이터에 대해서 피팅이 된 그런 크기가 나오겠죠.
所以当您执行时,现在将得到针对训练数据拟合的这种大小。
얘도 이제 똑같이 이제 체인이랑 테스트 데이터에 대해서 어큐러시를 확인을 해볼게요.
现在也将对链和测试数据的准确性进行验证。
Attendees 1 39:56
与会者 1 39:56
그리고 이제 테스트 데이터는 똑같이 넣어주면 되겠죠.
然后现在测试数据也可以同样放入。
Attendees 1 40:08
参会者 1 40:08
이렇게 실행을 해 주시면은 아까 로지스틱 회기 결과보다는 조금 이제 어큐라시가 좀 낮게 나온 걸 확인하실 수가 있습니다.
如果您这样执行,您可以确认逻辑回归结果的准确性会稍微降低。
Attendees 1 40:21
参与者 1 40:21
이제 트리 모델 같은 경우에는 이제 저희가 이제 어떤 게 중요한지 출력을 해서 또 확인을 해볼 수가 있겠죠.
对于树模型,我们现在可以输出哪些是重要的,然后再进行确认。
Attendees 1 40:36
与会者 1 40:36
그러면 위에서 피팅 시켰던 이 트리 객체에서 이제 피처 인포턴스를 가져와서 저장을 해줍니다.
然后从之前拟合的这个树对象中获取特征重要性并保存。
그리고 이제 중요도 순으로 정렬을 해서 결과를 확인을 해보면 이런 결과가 출력되는 것을 확인하실 수가 있습니다.
现在如果按重要性排序并检查结果,您可以看到这样的输出。
좀 주로 이제 약간 부정적인 단어들이 좀 많이 나와 있네요.
现在主要出现了一些比较负面的词语。
Attendees 1 41:05
与会者 1 41:05
이제 이렇게 이제 TF IDF 벡트라이제이션을 통해서 텍스트를 이제 벡터로 변환을 하고 그걸 가지고 이제 클래식 파일을 진행을 해봤는데 이렇게도 표현을 할 수가 있고 또 이렇게 워드 임베딩을 사용을 해서 이제 단어를 벡터로 표현할 수도 있습니다.
现在,我们通过 TF IDF 向量化将文本转换为向量,并进行了分类。同时,还可以通过这种方式表达,也可以使用词嵌入来将单词表示为向量。
단어를 벡터로 표현하는 방법이 이렇게 이제 일반적으로 두 가지가 있는데 원어 프레젠테이션이랑 벡터 프레젠테이션이 있죠 워너 프레젠테이션 같은 경우에는 이제 원넛 인코딩처럼 각 단어를 이제 전체 이제 어휘 크기만큼 그러니까 전체 목격 크기만큼 벡터로 표현을 해서 해당 단어의 위치만 1로 표현을 하고 나머지는 모두 0으로 표현하는 겁니다.
有两种通常表示单词为矢量的方法,即原语表示和矢量表示。对于 one-hot 表示,就像 one-hot 编码一样,每个单词都用整个词汇大小的矢量表示,即在该单词的位置标记为 1,其他位置标记为 0。
그래서 이제 이 위치가 이제 도으면 얘는 1로 표현을 하고 나머지는 0이 되겠죠.
所以现在这个位置如果移动,它就会被表示为 1,其他位置都将为 0。
그리고 이제 다른 방법이 이제 벡터 프레젠테이션이 있는데 얘 같은 경우에는 이제 단어를 이제 댄스한 벡터로 표현하는 방법입니다.
现在有另一种方法,那就是向量表示,在这种情况下,是用向量来表示单词的方法。
Attendees 1 42:04
与会者 1 42:04
처음에 이제 원업 레프레젠테이션을 사용을 하게 되면은 이제 벡터 간의 유사도를 판단하기 좀 힘들고 좀 스파스하다는 그런 단점이 있는데 벡터 레프레젠테이션을 사용을 하게 되면은 의미적으로 가까운 단어는 약간 임의적으로 유사한 단어는 가까운 벡터로 매핑이 돼서 나중에 이제 단어 간의 시뮬럴리티를 계산할 수가 있습니다.
当最初使用单词表示时,向量之间的相似度很难判断,并且向量比较稀疏。但使用向量表示后,语义上接近的单词会被映射到相似的向量,从而可以后续计算单词间的相似性。
Attendees 1 42:33
与会者 1 42:33
그래서 요 이제 워드 투백 모델을 한번 트레이닝을 해볼 건데 워드트백 모델 같은 경우에는 이 그림에서 볼 수 있는 것처럼 이렇게 인풋 단어들의 인베딩을 사용을 해서 이제 주변 단어 그러니까 타깃이죠.
因此,我现在将训练 Word2Vec 模型。对于 Word2Vec 模型,正如图中所示,通过使用输入单词的嵌入来计算目标词,即周围的单词。
주변 단어를 예측하는 방법으로 이제 인베딩을 학습하게 됩니다.
现在通过预测周围的词来学习嵌入。
이제 프로젝션 레이어에서는 이제 학습이 진행되면서 가중치가 업데이트되는데 그 가중치가 이제 단어의 의미 정보들을 가지게 됩니다.
在投影层中,随着学习的进行,权重不断更新,这些权重将包含单词的语义信息。
사용할 데이터셋은 위에서 가져왔었던 이제 imdb 무비 리뷰 데이터인데 똑같이 이제 천 개가 사용을 하게 되겠죠.
我们将使用的数据集是之前获取的 IMDB 电影评论数据集,同样将使用 1000 条数据。
그래서 실행을 해 주시면은 똑같이 쉐입은 이제 천 개고 첫 번째 리뷰를 가져오면 아까 위에서 봤던 거랑 똑같은 결과인 걸 확인하실 수가 있습니다.
执行后,形状将依然是 1000 个,如果查看第一条评论,您会发现与之前看到的结果是一样的。
Attendees 1 43:23
与会者 1 43:23
그다음에 이제 똑같이 이제 NLTK의 워드 토크나이즈를 가지고 와서 토크나이징을 진행을 해 주시면 되고요.
然后现在同样地从 NLTK 的词分词器进行分词处理。
그러면 이제 엑스트레인 데이터에 대해서 이제 도크나이징을 진행을 한 결과가 여기에 저장이 되겠죠.
那么现在,X 训练数据的分词结果将被存储在这里。
이 샘플 텍스트의 첫 번째를 출력을 해보시면은 요 리뷰가 이제 토크나이징이 돼서 이렇게 나온 걸 확인하실 수가 있겠네요.
如果您打印这个样本文本的第一个,您可以确认这个评论已经被分词,并且这样呈现出来。
Attendees 1 43:52
与会人员 1 43:52
그러면 이 단어들을 가지고 이제 터로 표현을 해볼 건데 젠심 라이브러리를 사용을 해서 진행을 해보겠습니다.
那么,我将使用 Jensim 库来处理这些单词并进行演示。
저는 이미 설치를 해서 얘는 실행을 하지 않을 거고요.
我已经安装好了,所以我不会执行它。
이 코드를 실행하셔서 중심 라이브러리를 설치를 하셨으면은 이제 여기서 제공하는 워드 투 맥을 인포트에서 이제 위에서 토큰화된 텍스트를 가지고 임베딩 학습을 진행을 해 주시면 됩니다.
如果你已经执行了这段代码并安装了核心库,那么现在你可以从这里提供的 Word2Mac 导入,然后使用上面分词的文本进行嵌入学习。
그러면 이렇게 임포트된 걸 얘를 그대로 가져오면 되겠죠.
这样导入的话,就可以直接获取它了。
Attendees 1 44:31
与会者 1 44:31
코 파라미터를 설정을 해 줍니다. 사용할 센텐스는 이제 위에서 방금 봤었던 이 토크나이징 된 샘플 텍스트를 넣어주시면 되고요.
设置代码参数。对于要使用的句子,请直接使用刚才看到的已分词的示例文本。
Attendees 1 44:45
与会者 1 44:45
이제 벡터 사이즈는 10으로 설정을 하고 윈도우 그러니까 이제 주변 단어 윈도우 크기는 5로 설정을 하고 인카운트는 10으로 설정을 해서 이제 10번 미만 등장한 단어들은 모두 무시해 주시면 됩니다.
现在将向量大小设置为 10,窗口大小,也就是周围单词的窗口大小设置为 5,并将最小出现次数设置为 10,这样可以忽略掉出现少于 10 次的所有单词。
얘를 실행을 해 주시면은 요렇게 모델이 생성이 되겠죠.
执行它后,模型就会像这样生成。
Attendees 1 45:20
出席人员 1 45:20
그러면 이제 이 모델들을 가지고 이제 단어의 인베딩 벡터를 확인해 볼 수가 있는데 일단은 이제 맨의 인베딩 벡터를 확인해 보겠습니다.
那么现在,我们可以使用这些模型来检查词嵌入向量,首先让我们来看一下 man(男人)的嵌入向量。
Attendees 1 45:34
与会人员 1 45:34
실행을 해 주시면은 요 맨이라는 단어는 다음과 같은 벡터를 통해서 표현이 되겠네요.
如果您执行操作,这个"男人"这个词将通过以下向量来表示。
그러면 이 벡터를 가지고 이제 n과 유사한 벡터를 가진 단어를 출력을 해볼 수도 있습니다.
然后,可以使用这个向量输出与之相似的向量的单词。
실행을 해 주시면은 이렇게 유사한 단어가 10개 출력이 되는 걸 확인하실 수가 있습니다.
执行后,您将可以确认输出了 10 个相似的单词。
Attendees 1 46:02
与会者 1 46:02
이렇게 방금 했던 것처럼 이제 워드 투 백 모델을 직접 학습할 수도 있지만 여기 보시는 것처럼 이제 사전 학습된 프리트레인 된 모델을 가져와서 사용할 수도 있습니다.
就像刚才那样,现在您可以直接学习词转包模型,但是正如您在这里看到的,也可以使用预先训练的预训练模型。
중심 다운로드를 임포트 해 주시고 사전 학습된 글로벌 모델을 가져와서 진행을 해볼게요.
请导入中心下载,并获取预训练的全球模型,然后进行操作。
Attendees 1 46:26
与会者 1 46:26
위에서 이제 얘를 복사 붙여넣기 하시면 되겠죠.
现在您可以在上面复制粘贴这个。
Attendees 1 46:36
参与者 1 46:36
여기서 실행을 해 주시면은
请在这里执行
Attendees 1 46:51
参会人员 1 46:51
글로벌 모델이 가지고 와서 이제 여기에 저희가 사용할 수 있도록 되겠죠.
全球模型被引入,现在我们可以使用它了。
그러면 이 모델을 가지고 또 카에 이제 인베딩 벡터를 확인을 해보겠습니다.
然后,我们将使用这个模型来确认嵌入向量。
해서 실행을 해 주시면은 요 카라는 단어는 다음과 같은 벡터로 나타낼 수가 있습니다.
如果执行,就可以将"卡拉"这个词表示为以下向量。
그리고 얘도 이제 유사한 벡터를 가진 그런 유사한 의미를 가진 10개의 단어를 출력해 볼 수가 있는데
并且现在还可以输出具有类似向量的 10 个意义相近的单词。
Attendees 1 47:33
与会者 1 47:33
이렇게 해서 실행을 해 주시면은 유사한 단어가 10개가 출력이 되겠죠.
如果您这样执行,那么将会输出 10 个相似的单词。
Attendees 1 47:42
参会人员 1 47:42
이번에는 이제 다른 단어 이 도그를 활용을 해서 얘와 유사한 벡터를 확인을 해볼게요.
这次我们将使用这个词向量来确认与之相似的向量。
Attendees 1 47:58
与会者 1 47:58
실행을 해 주시면 이렇게 유사한 단어가 나오는 걸 확인하실 수가 있습니다.
如果您执行此操作,您可以确认出现类似的单词。
Attendees 1 48:07
出席者 1 48:07
얘는 이제 일반적으로 그냥 운동 수단 그러니까 이제 차와 관련된 그런 단어들이 출력이 된 걸 확인하실 수가 있고 얘 같은 경우에는 이제 일단 반려동물이나 동물 같은 단어들이 출력이 된 걸 확인하실 수가 있습니다.
这个现在通常只是作为一种运动方式,即与车相关的词语已经输出,您可以看到。而这个情况下,现在首先可以看到诸如宠物或动物之类的词语已经输出。
이렇게 봐도 이제 유사도가 높은 걸 판단할 수가 있지만 얘를 그래프로도 한번 표현을 해보겠습니다.
即使以这种方式观察,现在也可以判断相似度很高,但我将尽试用图表来表示它。
이번에는 이제 각 단어와 이제 유사한 의미를 가진 단어를 5개만 추출해서 얘를 가지고 그래프를 그려볼게요.
这次,我将提取每个单词以及与之意义相似的 5 个单词,并用它们绘制图表。
이제 카와 유사한 단어들은 이제 x에 저장을 해 해두고 이제 얘와 유사한 단어들은 y에 저장을 해둘게요.
现在我将把类似于"卡"的单词保存在 x 中,并将类似于它的单词保存在 y 中。
그리고 이제 차원이 너무 크기 때문에 저희가 시각화를 하기 위해서 PCA를 사용을 해서 3차원으로 차원 숙소를 진행을 해보도록 하겠습니다.
然后,由于维度太大,为了进行可视化,我们将使用 PCA 将维度缩减到 3 维。
그러면 이제 위에서 PC에 인포트 했으니까
那么现在我们已经在 PC 上导入了
Attendees 1 49:14
参会人员 1 49:14
이렇게 실행을 해 주시면 되겠죠. 그러면 데이터셋에 대해서 3차원으로 이제 차원 숙소가 진행이 되고
这样执行就可以了。然后对于数据集,现在将进行三维空间的处理
Attendees 1 49:27
出席者 1 49:27
피팅을 시켜줬으니까
因为给你做了试穿
Attendees 1 49:32
与会者 1 49:32
트랜스폰만 추가적으로 진행을 해 주면 되겠죠.
只需再额外进行转置即可。
Attendees 1 49:40
与会者 1 49:40
그리고 이렇게 3차원으로 이제 트랜스폼 된 x랑 y를 가지고 3차원 그래프를 그려주겠습니다.
现在,我将使用这些转换后的 3 维 x 和 y 来绘制 3 维图形。
여기에서 보시면 이제 빨간색이랑 그리고 검정색으로 표현을 하게 되어 있는데 빨간 점은 이제 기준 단어고 이제 검은색 포인트 같은 경우에는 이제 유사한 단어들이 출력이 되겠죠.
在这里,你会看到用红色和黑色表示,红点是基准词,而黑色点则表示类似的词语。
얘를 실행을 해 주시면
请执行这个
Attendees 1 50:11
与会者 1 50:11
실행을 해 주시면 이렇게 출력이 되는 걸 확인하실 수가 있습니다.
如果您执行,您可以看到这样的输出。
여기서 보시면 이제 아까 위에서 봤던 것처럼 카 주변에는 이런 유사한 의미를 가진 단어가 이렇게 모여 있는 것을 확인하실 수가 있고 이 단어 주변에는 이제 동물들 관련 단어가 이렇게 나타나 있는 것을 확인하실 수가 있습니다.
在这里,您可以看到与之前类似的情况,在"车"周围有这些意义相近的单词聚集在一起,而在这个单词周围又出现了与动物相关的单词。
그래서 이제 유사한 단어들은 이제 국간적으로도 가까이 붙어 있다고 보시면 될 것 같습니다.
所以现在相似的词语可以被看作在国际上也靠得很近。
여기까지 이제 수업 진행을 해봤고 퀴즈는 총 2개가 있습니다.
到这里我们已经进行了课程,总共有 2 个测验。
일단 첫 번째로 이제 네이버 영화 리뷰 텍스트 분류인데 얘 같은 경우는 이제 올려드렸던 이 CSV 파일 사용해 주시면 되고 클래스는 이제 negative형 positive 총 두 가지가 있다고 합니다.
首先,这是关于 Naver 电影评论文本分类,你可以使用之前上传的 CSV 文件,类别总共有两种:negative 和 positive。
데이터 크기는 아까 봤던 것처럼 20만 개인데 그중에서 이제 천 개만 가지고 와서 사용을 해 주시면 되고 트레이닝 셋은 그중에서 70% 사용해 주시면 됩니다.
数据大小是 20 万个,从中选取 1000 个进行使用,训练集使用其中的 70%。
Attendees 1 51:12
出席者 1 51:12
과정은 총 5개인데 okt를 사용을 해서 이제 프리 프로세스랑 이제 토크나이징이랑 그리고 스테밍 진행해 주시면 되고 그다음에 이제 TF IDF 벡터 만들어서 이제 텍스트에서 이제 10% 이상 등장하는 단어들은 모두 무시해 주시면 됩니다.
该过程总共有 5 个步骤,使用 okt 进行预处理、分词和词干提取,然后创建 TF-IDF 向量,并忽略在文本中出现超过 10%的所有单词。
그다음에 이렇게 벡터라이제이션 데이터를 가지고 이제 로지스틱 리그레션이랑 디시전 트리 진행을 해 주시고
接下来用这个向量化的数据来进行逻辑回归和决策树的处理
Attendees 1 51:42
与会者 1 51:42
중요도 높은 20개 출력을 해서 보여주시고 이제 테스트 텍스트에 대해서 이제 프레디트 진행해 주시면 됩니다.
输出 20 个高重要性的项目,然后对测试文本进行预测。
Attendees 1 51:56
与会者 1 51:56
그다음에는 이제 코사인 유사도 사용을 해서 이제 유사한 텍스트를 찾는 두 번째 퀴즈인데요.
接下来,我将使用余弦相似度来找到相似的文本,这是第二个测验。
얘 같은 경우에도 이제 텍스트는 이 메타 데이터 CSV를 사용해 주시면 됩니다.
对于这种情况,您也可以使用此元数据 CSV。
그래서 얘도 이제 tfidf 벡터 생성해 주시고 이제 코사인시뮬리티 매트릭스 만들어 주시고 이제 함수도 하나 정리를 해 주시고 마지막으로 이제 이 두 개의 영화에 대해서 유사한 영화를 10개씩 출력해 주시면 됩니다.
所以请为这个也创建 TF-IDF 向量,并制作余弦相似性矩阵,整理一个函数,最后为这两部电影输出 10 个相似的电影。
진행을 해 주시고 그것도 저장해 주셔서 이제 토요일 11시 59분까지 올려주시면 되고 만약에 진행하시다가 모르는 게 있으면 이제 메일 주시면 됩니다.
请继续进行,并保存,现在可以在周六 11 点 59 分之前上传。如果在进行过程中遇到不懂的地方,可以给我发邮件。
clovanote.naver.com