Releases: hyunwoongko/kss
v4.5.0
1. Add ignores
parameter to prevent missplitting sentences
You can add ignores
list to split_sentences
and summarize_sentences
.
import kss
text = """첫째. λ² νΈλ¨ μ§μμμλ μΌμ°λΆν° λ°λκ΅, μ΄μ°λ½ μκ΅, λ¨λΉμ£(λ¨μ) λ±μ΄ 건κ΅λμ΄ λ°μ νμλ€. κ·Έλ¬λ ν 무μ μ 곡격μΌλ‘ μ€κ΅μ μ§λ°°λ₯Ό λ°κΈ° μμνλ©΄μ μ€κ΅ λ¬Ένμ μν₯μ λ°κ² λμλ€. νΉν λΉμ μ§λ°°λ₯Ό λ°μΌλ©΄μ λΉ λ¬Ένμ μν₯μ λ§μ΄ λ°μλ€.
λμ§Έ. λ² νΈλ¨μμλ μ€κ΅ λ¬Ένμ μν₯ μμμ μ κ΅ λ¬Ένκ° λ°λ¬νμλ€. νΉν λ² νΈλ¨μ 리 μμ‘° λμλ λ¬Έλ¬κ° μ€μΉλκ³ , κ³Όκ±°μ κ° μνλκΈ°λ νμλ€. ννΈ λ (νκΈ°) μμ‘° λμλ μ±λ¦¬νμ λ°νμΌλ‘ ν μ κ΅ λ¬Ένκ° νμ°λμλ€.
μ
μ§Έ. λ² νΈλ¨μμλ κ°μλμ΄ νλΆνκ³ , λ μ¨κ° λ°λ»νμ¬ λ²Όλμ¬ μ€μ¬μ λκ²½ μνμ΄ μ΄λ£¨μ΄μ§κ³ μλ€.
λ·μ§Έ. λμμμ μ§μμ κ³μ μ λ°λΌ λ°©ν₯μ΄ λ°λλ κ³μ νμ μν₯μ κ°νκ² λ°λ κ³³μ΄λ€. μμ ν΄μμ± κΈ°νλ μ€μλμ λλ₯ μμͺ½ μ§μμ μ£Όλ‘ λνλλ€.
"""
output = kss.split_sentences(text)
print(output)
# ['첫째.', 'λ² νΈλ¨ μ§μμμλ μΌμ°λΆν° λ°λκ΅, μ΄μ°λ½ μκ΅, λ¨λΉμ£(λ¨μ) λ±μ΄ 건κ΅λμ΄ λ°μ νμλ€.', 'κ·Έλ¬λ ν 무μ μ 곡격μΌλ‘ μ€κ΅μ μ§λ°°λ₯Ό λ°κΈ° μμνλ©΄μ μ€κ΅ λ¬Ένμ μν₯μ λ°κ² λμλ€.', 'νΉν λΉμ μ§λ°°λ₯Ό λ°μΌλ©΄μ λΉ λ¬Ένμ μν₯μ λ§μ΄ λ°μλ€.', 'λμ§Έ.', 'λ² νΈλ¨μμλ μ€κ΅ λ¬Ένμ μν₯ μμμ μ κ΅ λ¬Ένκ° λ°λ¬νμλ€.', 'νΉν λ² νΈλ¨μ 리 μμ‘° λμλ λ¬Έλ¬κ° μ€μΉλκ³ , κ³Όκ±°μ κ° μνλκΈ°λ νμλ€.', 'ννΈ λ (νκΈ°) μμ‘° λμλ μ±λ¦¬νμ λ°νμΌλ‘ ν μ κ΅ λ¬Ένκ° νμ°λμλ€.', 'μ
μ§Έ.', 'λ² νΈλ¨μμλ κ°μλμ΄ νλΆνκ³ , λ μ¨κ° λ°λ»νμ¬ λ²Όλμ¬ μ€μ¬μ λκ²½ μνμ΄ μ΄λ£¨μ΄μ§κ³ μλ€.', 'λ·μ§Έ.', 'λμμμ μ§μμ κ³μ μ λ°λΌ λ°©ν₯μ΄ λ°λλ κ³μ νμ μν₯μ κ°νκ² λ°λ κ³³μ΄λ€.', 'μμ ν΄μμ± κΈ°νλ μ€μλμ λλ₯ μμͺ½ μ§μμ μ£Όλ‘ λνλλ€.']
output = kss.split_sentences(text, ignores=["첫째.", "λμ§Έ.", "μ
μ§Έ.", "λ·μ§Έ."])
print(output)
# ['첫째. λ² νΈλ¨ μ§μμμλ μΌμ°λΆν° λ°λκ΅, μ΄μ°λ½ μκ΅, λ¨λΉμ£(λ¨μ) λ±μ΄ 건κ΅λμ΄ λ°μ νμλ€.', 'κ·Έλ¬λ ν 무μ μ 곡격μΌλ‘ μ€κ΅μ μ§λ°°λ₯Ό λ°κΈ° μμνλ©΄μ μ€κ΅ λ¬Ένμ μν₯μ λ°κ² λμλ€.', 'νΉν λΉμ μ§λ°°λ₯Ό λ°μΌλ©΄μ λΉ λ¬Ένμ μν₯μ λ§μ΄ λ°μλ€.', 'λμ§Έ. λ² νΈλ¨μμλ μ€κ΅ λ¬Ένμ μν₯ μμμ μ κ΅ λ¬Ένκ° λ°λ¬νμλ€.', 'νΉν λ² νΈλ¨μ 리 μμ‘° λμλ λ¬Έλ¬κ° μ€μΉλκ³ , κ³Όκ±°μ κ° μνλκΈ°λ νμλ€.', 'ννΈ λ (νκΈ°) μμ‘° λμλ μ±λ¦¬νμ λ°νμΌλ‘ ν μ κ΅ λ¬Ένκ° νμ°λμλ€.', 'μ
μ§Έ. λ² νΈλ¨μμλ κ°μλμ΄ νλΆνκ³ , λ μ¨κ° λ°λ»νμ¬ λ²Όλμ¬ μ€μ¬μ λκ²½ μνμ΄ μ΄λ£¨μ΄μ§κ³ μλ€.', 'λ·μ§Έ. λμμμ μ§μμ κ³μ μ λ°λΌ λ°©ν₯μ΄ λ°λλ κ³μ νμ μν₯μ κ°νκ² λ°λ κ³³μ΄λ€.', 'μμ ν΄μμ± κΈ°νλ μ€μλμ λλ₯ μμͺ½ μ§μμ μ£Όλ‘ λνλλ€.']
2. Add circle characters and bracket characters
Kss considers circle characters like β , β‘, β’ and bracket characters like β΄, β΅, βΆ from version 4.5.0.
import kss
text = """
⒠ꡬμκΈ° μλμλ μ¬λ₯, μ±μ§, λ¬Όκ³ κΈ°μ‘μ΄λ‘ μκ³λ₯Ό μ μ§νμλ€.
β£ μ μκΈ° μλμ μ΄λ₯΄λ¬ μ‘°, νΌ λ±μ μ¬λ°°νλ λκ²½μ΄ μμλμλ€.
β€ μ²λκΈ° μλ μ΄ν μ²λμ΄λ μ² κΈ° λ±μ κΈμμ μ΄μ©νμ¬ λ¬΄κΈ°λ₯Ό λ§λ€μ΄ μ¬μ©νμλ€.
"""
output = kss.split_sentences(text)
print(output)
# before:
# ['⒠ꡬμκΈ° μλμλ μ¬λ₯, μ±μ§, λ¬Όκ³ κΈ°μ‘μ΄λ‘ μκ³λ₯Ό μ μ§νμλ€.\nβ£', μ μκΈ° μλμ μ΄λ₯΄λ¬ μ‘°, νΌ λ±μ μ¬λ°°νλ λκ²½μ΄ μμλμλ€.\nβ€', μ²λκΈ° μλ μ΄ν μ²λμ΄λ μ² κΈ° λ±μ κΈμμ μ΄μ©νμ¬ λ¬΄κΈ°λ₯Ό λ§λ€μ΄ μ¬μ©νμλ€.']
# after
# ['⒠ꡬμκΈ° μλμλ μ¬λ₯, μ±μ§, λ¬Όκ³ κΈ°μ‘μ΄λ‘ μκ³λ₯Ό μ μ§νμλ€.', 'β£ μ μκΈ° μλμ μ΄λ₯΄λ¬ μ‘°, νΌ λ±μ μ¬λ°°νλ λκ²½μ΄ μμλμλ€.', 'β€ μ²λκΈ° μλ μ΄ν μ²λμ΄λ μ² κΈ° λ±μ κΈμμ μ΄μ©νμ¬ λ¬΄κΈ°λ₯Ό λ§λ€μ΄ μ¬μ©νμλ€.']
3. Support strip
and ignores
parameters in summarize_sentences
You can use strip
and ignores
parameters in summarize_sentences
similar with split_sentences
.
kss.summarize_sentences(text, ignores=["첫째.", "λμ§Έ.", "μ
μ§Έ.", "λ·μ§Έ."], strip=False)
v4.4.0
v4.4.0
- Add
punct
backend. This could be helpful for well-structed documents or english documents- Interestingly, It shows better performance than
nltk.sent_tokenize
in English.import nltk import kss text = "Thanks Mr. Kim. I love your suggestion.π We can choose one of them. 1. going to Korea, 2. going to Japan. I prefer Korea. because there are many foods. e.g. Kimchi, Bibimpap, and so on.𧑠(And I lived in Korean when I was young. I have some great experience) Please let me know your opinion!" nltk.sent_tokenize(text) ['Thanks Mr. Kim.', 'I love your suggestion.π We can choose one of them.', '1. going to Korea, 2. going to Japan.', 'I prefer Korea.', 'because there are many foods.', 'e.g.', 'Kimchi, Bibimpap, and so on.𧑠(And I lived in Korean when I was young.', 'I have some great experience) Please let me know your opinion!'] kss.split_sentences(text, backend="punct") ['Thanks Mr. Kim.', 'I love your suggestion.π', 'We can choose one of them. 1. going to Korea, 2. going to Japan.', 'I prefer Korea.', 'because there are many foods. e.g. Kimchi, Bibimpap, and so on.π§‘', '(And I lived in Korean when I was young. I have some great experience)', 'Please let me know your opinion!']
- Interestingly, It shows better performance than
- Improve emoji processing
- before: ['λ΄κ° λ°λΌλ κ².π κ·Έλ°λ° κ·Έκ²μ΄ μ½μ§ μλ€.']
- after: ['λ΄κ° λ°λΌλ κ².π', 'κ·Έλ°λ° κ·Έκ²μ΄ μ½μ§ μλ€.']
- Add many sf-splitting related excpetions
- for example,
e.g.
,i.e.
,Mr.
,Dr.
,Def.
,Prof.
, ...
- for example,
v4.3.2
- Fix the following bugs
- Fix empty sentence removing of postprocess
- Fix unknown token retrieval
v4.3.1
- Remove infinite loop in 'λ―' rule.
- Hide networkx for faster import.
v.4.3.0
v4.3.0
- Added
summarize_sentences
function
Why text summarization in Kss?
There's textrankr
, a text summarization module for Korean. So someone might ask me like "Why are you adding summarization feature into Kss?". The reason of adding this feature is sentence segmentation performance is very important in text summarization domain.
Before summarize text into sentences, we must split text into sentences. but textrankr
has been split sentences using very naive regex based method, and this makes text summarization performance poorly. In addition, user must input tokenizer into the TextRank
class, but this is a little bit bothering. So I fixed the two problems of textrankr
, and added the codebase into Kss.
Kss has one of the best sentence segmentation module in all of the Korean language processing libraries, and this can improve text summarization performance without modifying any summarization related algorithms in textrankr
.
Let's see the following example.
text = """μ΄λνμ°½νλ μΆκ·Όμ μ λ무μΌμ°μΌμ΄λ λ²λ Έμ (μΆκ·Όμκ° 19μ)
ν κΊΌλμκ³ ν΄μ μΉ΄νλ₯Ό μ°Ύμ μλ΄λ‘ λκ°μ
μλ‘μκΈ΄κ³³μ μ¬μ₯λμ΄ μ»€νΌμ μμΈμ§ 컀νΌλ°μ¬λΌκ³ ν΄μ κ°μ
μ€ννμ§ μΌλ§μλμ κ·Έλ°μ§ μλμ΄ μΌλ§μμμ
μ‘°μ©νκ³ μ’λ€λ©° μ’μνλκ±ΈμμΌμ ν
λΌμ€μ μμ"""
Output of textrankr
is:
import textrankr
import mecab
tokenizer = mecab.MeCab().morphs
textrankr_class = textrankr.TextRank(tokenizer=tokenizer)
textrankr_output = textrankr_class.summarize(text, verbose=False)
print(textrankr_output)
output:
['μ΄λνμ°½νλ μΆκ·Όμ μ λ무μΌμ°μΌμ΄λ λ²λ Έμ (μΆκ·Όμκ° 19μ) ν κΊΌλμκ³ ν΄μ μΉ΄νλ₯Ό μ°Ύμ μλ΄λ‘ λκ°μ μλ‘μκΈ΄κ³³μ μ¬μ₯λμ΄ μ»€νΌμ μμΈμ§ 컀νΌλ°μ¬λΌκ³ ν΄μ κ°μ μ€ννμ§ μΌλ§μλμ κ·Έλ°μ§ μλμ΄ μΌλ§μμμ μ‘°μ©νκ³ μ’λ€λ©° μ’μνλκ±ΈμμΌμ ν
λΌμ€μ μμ κ·Όλ° μ‘°μ©νλ μΉ΄νκ° μ°λ§ν΄μ§ μ리μ μΆμ²λ μΉ΄μ΄ν°μμ(ν
λΌμ€κ° μΉ΄μ΄ν° λ°λ‘μ)']
Output of kss
is:
import kss
kss.sumarize_sentences(text)
output:
['ν κΊΌλμκ³ ν΄μ μΉ΄νλ₯Ό μ°Ύμ μλ΄λ‘ λκ°μ', 'μλ‘μκΈ΄κ³³μ μ¬μ₯λμ΄ μ»€νΌμ μμΈμ§ 컀νΌλ°μ¬λΌκ³ ν΄μ κ°μ', 'μ‘°μ©νκ³ μ’λ€λ©° μ’μνλκ±ΈμμΌμ ν
λΌμ€μ μμ']
You can see textrankr
failed summarizing text because it couldn't split input text into sentences. but Kss summarized text very well. And usage of kss
is also much easier than textrankr
! That's why I am adding this feature into Kss.
For more details, please check our README document. Thanks !
v4.2.0
v4.1.4
- 무μ¨μΌμ΄μμκΉμ© λ°λ‘ μ΄κ²μ΄μ£
- before:
["무μ¨μΌμ΄μμκΉ", "μ© λ°λ‘ μ΄κ²μ΄μ£ "]
- after:
["무μ¨μΌμ΄μμκΉμ©", "λ°λ‘ μ΄κ²μ΄μ£ "]
- before:
- 무μ¨μΌμ΄μκ²μ© λ°λ‘ μ΄κ²μ΄μ£
- before:
["무μ¨μΌμ΄μκ²μ© λ°λ‘ μ΄κ²μ΄μ£ "]
- after:
["무μ¨μΌμ΄μκ²μ©", "λ°λ‘ μ΄κ²μ΄μ£ "]
- before:
v4.1.3
- Add 'nμ₯' to exception of SF based split.
- Modify a lot of sanity checks message.
v4.1.2
1. Unicode related update (feature addition & bug fixes)
- Add
drop_space
forsplit_morphemes
- Add
strip
forsplit_sentences
- Fix unicode related bugs
2. Powerful support for wikipedia-like text and paper-like text
ν μ€νΈ λ λλ§μ κ°κΉμ΄ μμ€μ μ νλμ λν μΌμ μ 곡ν©λλ€.
- μμ 1 (κ°μ£Ό λ° μΈμ©)
from kss import split_sentences
data = """λ©μλ μ‘°λ³λΌμ΄λ 1μ°¨μ μΈ λμ΄μ§λ¦¬μμμ κ²½κΈ°μ μ λ° μΆμ νμΌλ μλ 골ν€νΌμΈ λΉμΌνΈ μλμμλ§μ μ λ°©λ€μ λ§ν 골μ κΈ°λ‘νμ§λ λͺ»νλ€.[12] μ‘°λ³λΌμ΄λ 2μ°¨μ μΈ λνλ―Όκ΅κ³Όμ κ²½κΈ°μμλ μ λ° μΆμ₯νμΌλ©° μλ₯΄ν¨ν°λμ λͺ¨λ 골(4골 κ°μ΄λ° 3골μ κ³€μ΄λ‘ μ΄κ³ΌμΈμ΄ κΈ°λ‘ν λμ (ν΄νΈνΈλ¦)μ΄μμΌλ©° λλ¨Έμ§ 1골μ λνλ―Όκ΅μ λ°μ£Όμμ΄ κΈ°λ‘ν μμ±
골μ΄μλ€.)μ κΈ°μ¬λ₯Ό νλ€.[13] λν μ‘°λ³λ¦¬κ·Έ 3μ°¨μ μΈ κ·Έλ¦¬μ€μμ κ²½κΈ°μμ λ©μλ κ²½κ³ λμ μ μ°λ €νμ¬ κ²°μ₯ν νλΉμλ₯΄ λ§μ€μ²΄λΌλ
Έλ₯Ό λμ νμ¬ μ£Όμ₯ μμ₯μ μ°©μ©ν μ± κ²½κΈ°μ μνκ³ , μ’μ κ²½κΈ°λ ₯μΌλ‘ μλλ₯Ό μννλ©΄μ 무λμ μλ 맨 μ€λΈ λ 맀μΉμ μ μ λμλ€. "λ©μλ μ΅κ³ μ μ μμλ€. μ μλ€μ΄ κ²½κΈ° λλκ³ 'μΆκ΅¬ νκΈ° μ«μ΄μ‘λ€'κ³ ν μ λμλ€. μλ νλ₯ν μ μλΌ λ§μλΌ νμ΄ λμ§ μμλ€. λ μ λ° μ μκ° μλ μΆμλ€. μλΉνλ €κ³ μ°λ₯΄λ₯΄ λ¬λ €λ€λ©΄ μμΌλ‘ ν ν¨μ€νκ³ λΉ μ Έλ€μ΄κ°κ³ β¦ μ°Έ μ리ν μ μμλ€." - μ‘°μ©ν, μλμ»΅ μ‘°λ³ λ¦¬κ·Έμμ μλ₯΄ν¨ν°λμ 1 β 4λ‘ ν¨ν ν. 16κ°μ μ μ§μΆνμ 4λ
λ§μ λ€μ λ§λ μλμΈ λ©μμ½λ₯Ό μλλ‘λ μ’μ κ²½κΈ°λ ₯μ 보μ¬μ€¬μΌλ©° μΉ΄λ₯Όλ‘μ€ ν
λ² μ€μκ² μ΄μμ€νΈλ₯Ό κΈ°λ‘νλ©΄μ ν
λ² μ€κ° 골μ λ£μ μ μλλ‘ λμ쀬λ€. νμ§λ§ μ΄ κ²½κΈ°λ λΉμ μ€μ¬ λ
ΌλμΌλ‘ νμ κ° λκΈ°λ νλ€. ν
λ² μ€λ κ²½κΈ° μ§ν μΈν°λ·°μμ λμ μ ν μ΄ν μ£Όμ¬μ μ³λ€λ΄€κ³ μ£Όμ¬μ΄ μ€νμ¬μ΄λ νμ μ λ΄λ¦΄κ²μ΄λΌ μκ°νμ§λ§ μμ μ μκ°κ³Ό λ€λ₯΄κ² μ€νμ¬μ΄λ νμ μ΄ λ΄λ €μ§μ§μμ κ·ΈλμμΌ κΈ°λ»ν μ μμλ€κ³ νλ€. μ€μ λ‘ μ μ§λ νλ©΄μΌλ‘ 보면 λ©μμκ²μ κ³΅μ΄ μ°κ²°λλ μκ° ν
λ² μ€λ μλ²½ν μ€νμ¬μ΄λ μμΉμ μμλ€."""
for sent in split_sentences(data):
print(sent)
λ©μλ μ‘°λ³λΌμ΄λ 1μ°¨μ μΈ λμ΄μ§λ¦¬μμμ κ²½κΈ°μ μ λ° μΆμ νμΌλ μλ 골ν€νΌμΈ λΉμΌνΈ μλμμλ§μ μ λ°©λ€μ λ§ν 골μ κΈ°λ‘νμ§λ λͺ»νλ€.[12]
μ‘°λ³λΌμ΄λ 2μ°¨μ μΈ λνλ―Όκ΅κ³Όμ κ²½κΈ°μμλ μ λ° μΆμ₯νμΌλ©° μλ₯΄ν¨ν°λμ λͺ¨λ 골(4골 κ°μ΄λ° 3골μ κ³€μ΄λ‘ μ΄κ³ΌμΈμ΄ κΈ°λ‘ν λμ (ν΄νΈνΈλ¦)μ΄μμΌλ©° λλ¨Έμ§ 1골μ λνλ―Όκ΅μ λ°μ£Όμμ΄ κΈ°λ‘ν μμ±
골μ΄μλ€.)μ κΈ°μ¬λ₯Ό νλ€.[13]
λν μ‘°λ³λ¦¬κ·Έ 3μ°¨μ μΈ κ·Έλ¦¬μ€μμ κ²½κΈ°μμ λ©μλ κ²½κ³ λμ μ μ°λ €νμ¬ κ²°μ₯ν νλΉμλ₯΄ λ§μ€μ²΄λΌλ
Έλ₯Ό λμ νμ¬ μ£Όμ₯ μμ₯μ μ°©μ©ν μ± κ²½κΈ°μ μνκ³ , μ’μ κ²½κΈ°λ ₯μΌλ‘ μλλ₯Ό μννλ©΄μ 무λμ μλ 맨 μ€λΈ λ 맀μΉμ μ μ λμλ€.
"λ©μλ μ΅κ³ μ μ μμλ€. μ μλ€μ΄ κ²½κΈ° λλκ³ 'μΆκ΅¬ νκΈ° μ«μ΄μ‘λ€'κ³ ν μ λμλ€. μλ νλ₯ν μ μλΌ λ§μλΌ νμ΄ λμ§ μμλ€. λ μ λ° μ μκ° μλ μΆμλ€. μλΉνλ €κ³ μ°λ₯΄λ₯΄ λ¬λ €λ€λ©΄ μμΌλ‘ ν ν¨μ€νκ³ λΉ μ Έλ€μ΄κ°κ³ β¦ μ°Έ μ리ν μ μμλ€."
- μ‘°μ©ν, μλμ»΅ μ‘°λ³ λ¦¬κ·Έμμ μλ₯΄ν¨ν°λμ 1 β 4λ‘ ν¨ν ν.
16κ°μ μ μ§μΆνμ 4λ
λ§μ λ€μ λ§λ μλμΈ λ©μμ½λ₯Ό μλλ‘λ μ’μ κ²½κΈ°λ ₯μ 보μ¬μ€¬μΌλ©° μΉ΄λ₯Όλ‘μ€ ν
λ² μ€μκ² μ΄μμ€νΈλ₯Ό κΈ°λ‘νλ©΄μ ν
λ² μ€κ° 골μ λ£μ μ μλλ‘ λμ쀬λ€.
νμ§λ§ μ΄ κ²½κΈ°λ λΉμ μ€μ¬ λ
ΌλμΌλ‘ νμ κ° λκΈ°λ νλ€.
ν
λ² μ€λ κ²½κΈ° μ§ν μΈν°λ·°μμ λμ μ ν μ΄ν μ£Όμ¬μ μ³λ€λ΄€κ³ μ£Όμ¬μ΄ μ€νμ¬μ΄λ νμ μ λ΄λ¦΄κ²μ΄λΌ μκ°νμ§λ§ μμ μ μκ°κ³Ό λ€λ₯΄κ² μ€νμ¬μ΄λ νμ μ΄ λ΄λ €μ§μ§μμ κ·ΈλμμΌ κΈ°λ»ν μ μμλ€κ³ νλ€.
μ€μ λ‘ μ μ§λ νλ©΄μΌλ‘ 보면 λ©μμκ²μ κ³΅μ΄ μ°κ²°λλ μκ° ν
λ² μ€λ μλ²½ν μ€νμ¬μ΄λ μμΉμ μμλ€.
- μμ 2 (λ¨λ½κΈ°νΈ)
from kss import split_sentences
data = """ΒΆ λ무μν€λ 2015λ
4μ 17μΌμ μ€λ¦½λ, μ΄μ©μμ μμ μ κΆλ¦¬λ₯Ό νλ±νκ² λ³΄μ₯νκ³ μ§μκ³Ό μ 보μ 곡μ μ νμ°κΈ° μν΄ κ°μ€λ μν€μ΄λ€.μν€ μ¬μ΄νΈλ‘μ λ무μν€λ νΉμ μμμ νΈμ€λμ§ μμ, νλ¬ΈΒ·μλΈμ»¬μ² λ± λ€μν λΆμΌλ₯Ό ν¬μ©νμ¬ μ§ν₯μν€λ κ²μ λͺ©νλ‘ νλ©°, κ²½μ§λκ³ κ±΄μ‘°ν μμ μ΄ μλ μ΄λ μ λ μ¬λ―Έλ κ°μΆ μμ μ μ§ν₯νλ€.λ무μν€λ ν λ‘ μ ν΅ν΄ μ€λ¦½μ μ΄κ³ μ¬μ€μ μΈ μμ κ³Ό νΉμ ν κ΄μ Β·μΈλ ₯μ μ’
μλμ§ μλ μμ μ μ§ν₯νλ©°, 보νΈμ μΈ μΈκΆκ³Ό μ€λ¦¬μ μ΄κΈλλ μ¬μκ³Ό μ§λ¨μ 배격νλ€. ΒΆ λ무μν€λ λ¬Έμλ₯Ό μμ±νκ³ νΈμ§νκΈ° μν νΉλ³ν μ격 μ¦λͺ
μ λμ§ μλλ€. λ€λ§, λ무μν€μ νΈμ§μλ€μ΄ λͺ¨λ μΌκ΄λ μκ°μ νκ³ μλ κ²μ μλκΈ°μ, λΆμμ΄ λ°μν μ μ΄μ©μ κ°μ μ λΉνκ³ μμ λ‘μ΄ ν λ‘ μ ν΅νμ¬ ν©μμ μ λμΆν¨μ μμΉμΌλ‘ νλ€. μ΄λ¬ν μμΉμ΄ μ§μΌμ§ λ λ무μν€λ μ΄μ©μμ μμ λ‘μ΄ λ¬Έμ μμ κ³Ό ν λ‘ μ 보μ₯νλ€. κ·Έλ¬λ νμΈμ μ견μ 무μνλ νμ, μ°¨λ³κ³Ό λΉνλ₯Ό μ‘°μ₯νλ νμλ μ©μΈλμ§ μμΌλ©°, μ΄λ¬ν νμλ₯Ό ν μ μ μ¬λ μ μλ€. ΒΆ λ무μν€μ μ΄μ©μμ μν μμ¨μ΄μ, λΆμ ν΄κ²° μ μ΅μνμ κ°μ΄λλΌμΈμ μ 립μ ν΅ν΄ μ λν μ΄μ©μλ€μ μμ λ‘μ΄ μν€ νλμ 보μ₯νκΈ° μν΄μ 2015λ
5μ 3μΌλΆν° λ무μν€ μ΄μ©μλ€μ μ§μμ μΈ μμ ν λ‘ μ ν΅νμ¬ λ³Έ κΈ°λ³Έλ°©μΉ¨μ μμ±νμκ³ , 2015λ
9μ 5μΌ κ·μ ν λ‘ μ μ°Έμ¬ν ν λ‘ μ μ μμ ν¬ν¨ν μ΄μ©μμ ν©μμ λ°λΌ λ³Έ κΈ°λ³Έλ°©μΉ¨μ 곡ννλ€."""
for sent in split_sentences(data):
print(sent)
ΒΆ λ무μν€λ 2015λ
4μ 17μΌμ μ€λ¦½λ, μ΄μ©μμ μμ μ κΆλ¦¬λ₯Ό νλ±νκ² λ³΄μ₯νκ³ μ§μκ³Ό μ 보μ 곡μ μ νμ°κΈ° μν΄ κ°μ€λ μν€μ΄λ€.
μν€ μ¬μ΄νΈλ‘μ λ무μν€λ νΉμ μμμ νΈμ€λμ§ μμ, νλ¬ΈΒ·μλΈμ»¬μ² λ± λ€μν λΆμΌλ₯Ό ν¬μ©νμ¬ μ§ν₯μν€λ κ²μ λͺ©νλ‘ νλ©°, κ²½μ§λκ³ κ±΄μ‘°ν μμ μ΄ μλ μ΄λ μ λ μ¬λ―Έλ κ°μΆ μμ μ μ§ν₯νλ€.
λ무μν€λ ν λ‘ μ ν΅ν΄ μ€λ¦½μ μ΄κ³ μ¬μ€μ μΈ μμ κ³Ό νΉμ ν κ΄μ Β·μΈλ ₯μ μ’
μλμ§ μλ μμ μ μ§ν₯νλ©°, 보νΈμ μΈ μΈκΆκ³Ό μ€λ¦¬μ μ΄κΈλλ μ¬μκ³Ό μ§λ¨μ 배격νλ€.
ΒΆ λ무μν€λ λ¬Έμλ₯Ό μμ±νκ³ νΈμ§νκΈ° μν νΉλ³ν μ격 μ¦λͺ
μ λμ§ μλλ€.
λ€λ§, λ무μν€μ νΈμ§μλ€μ΄ λͺ¨λ μΌκ΄λ μκ°μ νκ³ μλ κ²μ μλκΈ°μ, λΆμμ΄ λ°μν μ μ΄μ©μ κ°μ μ λΉνκ³ μμ λ‘μ΄ ν λ‘ μ ν΅νμ¬ ν©μμ μ λμΆν¨μ μμΉμΌλ‘ νλ€.
μ΄λ¬ν μμΉμ΄ μ§μΌμ§ λ λ무μν€λ μ΄μ©μμ μμ λ‘μ΄ λ¬Έμ μμ κ³Ό ν λ‘ μ 보μ₯νλ€.
κ·Έλ¬λ νμΈμ μ견μ 무μνλ νμ, μ°¨λ³κ³Ό λΉνλ₯Ό μ‘°μ₯νλ νμλ μ©μΈλμ§ μμΌλ©°, μ΄λ¬ν νμλ₯Ό ν μ μ μ¬λ μ μλ€.
ΒΆ λ무μν€μ μ΄μ©μμ μν μμ¨μ΄μ, λΆμ ν΄κ²° μ μ΅μνμ κ°μ΄λλΌμΈμ μ 립μ ν΅ν΄ μ λν μ΄μ©μλ€μ μμ λ‘μ΄ μν€ νλμ 보μ₯νκΈ° μν΄μ 2015λ
5μ 3μΌλΆν° λ무μν€ μ΄μ©μλ€μ μ§μμ μΈ μμ ν λ‘ μ ν΅νμ¬ λ³Έ κΈ°λ³Έλ°©μΉ¨μ μμ±νμκ³ , 2015λ
9μ 5μΌ κ·μ ν λ‘ μ μ°Έμ¬ν ν λ‘ μ μ μμ ν¬ν¨ν μ΄μ©μμ ν©μμ λ°λΌ λ³Έ κΈ°λ³Έλ°©μΉ¨μ 곡ννλ€.
- μμ 3 (μ°Έμ‘°κΈ°νΈ; μ μ€ν°λ¦¬μ€ν¬, μΉΌν λ±)
- μ°Έκ³ λ‘ λ¬Έμ ꡬ쑰μ κ΄λ ¨λ λΆλΆ (μ 4μ . λ±)μ νκ°μ΄ κΈ°νΈ(
\n
)κ° μ΄μ μμ΄μΌ μ΄λ κ² λνλΌ μ μμ΅λλ€. λ¨ λ¬Έμ₯κ°μ νκ°μ΄λ νμ μμ΅λλ€.
- μ°Έκ³ λ‘ λ¬Έμ ꡬ쑰μ κ΄λ ¨λ λΆλΆ (μ 4μ . λ±)μ νκ°μ΄ κΈ°νΈ(
from kss import split_sentences
data = """μ 4μ . λͺ¨λΈλ§\nκ·Έλμ μ°λ¦¬λ λͺ¨λΈμ λ μ΄μ΄λ 28κ°λ‘ μ νκ³ *, 보캑μ¬μ΄μ¦λ 50400μΌλ‘ μ€μ νμλ€.β μ°Έκ³ λ‘ GPT(Generative Pre-trained Transformers)κ³μ΄μ λͺ¨λΈλ€μ OpenAIμμ λ°ννμκ³ , NLG μμ
μ μνν μ μλ λͺ¨λΈμ΄λ€. μκΈ°νκ· μΈμ΄λͺ¨λΈ(Autoregressive Language Model)μ΄λΌκ³ νλλ°, κ³Όκ±°μ ν
μ€νΈλ₯Ό λμ½λμ μ
λ ₯μΌλ‘ λ°μ νμ¬μ ν
μ€νΈλ₯Ό μμΈ‘νμ¬ μΆλ ₯νλ€. * κ° λ μ΄μ΄λ νλμ νΌλν¬μλ λΈλ‘κ³Ό νλμ μ
ν μ΄ν
μ
λΈλ‘μΌλ‘ ꡬμ±λλ€. β μλ² λ© λ§€νΈλ¦μ€μ ν¬κΈ°λ 50400μ΄μ§λ§ GPT-2 ν ν¬λμ΄μ λ 50257 νλͺ©λ§ μ¬μ©νλ€."""
for sent in split_sentences(data):
print(sent)
μ 4 μ . λͺ¨λΈλ§
κ·Έλμ μ°λ¦¬λ λͺ¨λΈμ λ μ΄μ΄λ 28κ°λ‘ μ νκ³ *, 보캑μ¬μ΄μ¦λ 50400μΌλ‘ μ€μ νμλ€.β
μ°Έκ³ λ‘ GPT(Generative Pre-trained Transformers)κ³μ΄μ λͺ¨λΈλ€μ OpenAIμμ λ°ννμκ³ , NLG μμ
μ μνν μ μλ λͺ¨λΈμ΄λ€.
μκΈ°νκ· μΈμ΄λͺ¨λΈ(Autoregressive Language Model)μ΄λΌκ³ νλλ°, κ³Όκ±°μ ν
μ€νΈλ₯Ό λμ½λμ μ
λ ₯μΌλ‘ λ°μ νμ¬μ ν
μ€νΈλ₯Ό μμΈ‘νμ¬ μΆλ ₯νλ€.
* κ° λ μ΄μ΄λ νλμ νΌλν¬μλ λΈλ‘κ³Ό νλμ μ
ν μ΄ν
μ
λΈλ‘μΌλ‘ ꡬμ±λλ€.
β μλ² λ© λ§€νΈλ¦μ€μ ν¬κΈ°λ 50400μ΄μ§λ§ ν ν¬λμ΄μ λ 50257 νλͺ©λ§ μ¬μ©νλ€.
- μμ 4 (λ
Όλ¬Έ)
- μ°Έκ³ λ‘ λ¬Έμ ꡬ쑰μ κ΄λ ¨λ λΆλΆ (1. μλ‘ λ±)μ νκ°μ΄ κΈ°νΈ(
\n
)κ° μ΄μ μμ΄μΌ μ΄λ κ² λνλΌ μ μμ΅λλ€. λ¨ λ¬Έμ₯κ°μ νκ°μ΄λ νμ μμ΅λλ€.
- μ°Έκ³ λ‘ λ¬Έμ ꡬ쑰μ κ΄λ ¨λ λΆλΆ (1. μλ‘ λ±)μ νκ°μ΄ κΈ°νΈ(
from kss import split_sentences
data = """1. μλ‘ \nλ¬Έμ₯μ΄λ μκ°μ΄λ κ°μ μ λ§λ‘ ννν λ μκ²°λ λ΄μ©μ λνλ΄λ μ΅μμ λ¨μλ‘, μμ°μ΄ μ²λ¦¬μ μ£Όμ μμ
λ€μμ λ¬Έμ₯μ΄ κΈ°λ³Έμ μΈ μ²λ¦¬ λ¨μκ° λλ€. λ¬Έμ₯ λ¨μμ μμ
μ μννκΈ° μν΄μλ μ°μ λ¬Έμ₯μ κ²½κ³λ₯Ό μΈμνλ κ²μ΄ νμνλ€[1]. μ΅κ·Ό λ€μν SNS νλ«νΌμ΄ λ±μ₯νκ³ , μ΄μ©μμ μκ° κΈμ¦ν¨μ λ°λΌ μ¨λΌμΈμμ μ»μ μ μλ λ€μν λΆμΌμ μ 보 νμ© κ°μΉκ° λμμ§κ³ μλ€. μΌλ°μ μΌλ‘ λ¬Έμ΄μ²΄λ λΉκ΅μ μ νν ꡬλμ μ μ¬μ©νλ©°, μ νλ μ’
κ²°μ΄λ―Έλ₯Ό μ¬μ©νκ³ μμΌλ―λ‘ λΉκ΅μ κ°λ¨νκ² λ¬Έμ₯ κ²½κ³λ₯Ό μΈμν μ μλ€. κΈ°μ‘΄μ 곡κ°λ μ¬λ¬ λ¬Έμ₯ κ²½κ³ μΈμκΈ°1)λ μΌ λ° λ¬Έμμ λν΄ λμ μ±λ₯μ 보μΈλ€. λ°λ©΄ λκΈμ΄λ SNS λ¬Έμμλ μ’μ μ±λ₯μ 보μ΄μ§ μλλ€. κ·Έ μ΄μ λ SNS λ¬Έ μμ λ€μκ³Ό κ°μ νΉμ§μ κ³ λ €νμ§ μμκΈ° λλ¬Έμ΄λ€. 1) ꡬλμ μ΄ μμ£Ό μλ΅λλ€. 2) νΉμκΈ°νΈλ μμλ₯Ό μ΄μ©ν λ€μν μ΄λͺ¨ν°μ½μ΄ μ¬μ©λλ€. 3) μ νμ΄, μ€μλ§ λ± μλ‘μ΄ ννμ μ’
κ²°μ΄λ―Έκ° μμ£Ό μ¬μ©λλ€. λ³Έ λ
Όλ¬Έμ λ¬Έμ΄μ²΄λΏ μλλΌ SNSμμ μ¬μ©λλ λ€μν 문체μμλ μ μ μ©λλ λ¬Έμ₯ κ²½κ³ μΈμκΈ°λ₯Ό μ μνλ€. μ μλ λ¬Έμ₯ κ²½κ³ μΈμκΈ°λ SNS λ¬Έμμ μ μ μ©λλλ‘ λ€μμ λ κ°μ§λ₯Ό κ°μ νλ€. μ²«μ§Έλ‘ νμ΅ λ§λμΉλ₯Ό νμ₯ νλ€. νμ΅ λ§λμΉλ₯Ό μΌλ° λ¬Έμλ‘λ§ μ ννμ§ μκ³ , SNS λ¬Έμλ ν¨κ» νμ΅ν μ μλλ‘ νμ΅ λ§λμΉμ SNS λ¬Έμλ₯Ό μΆκ°νλ€. λμ§Έλ‘ μμ§ μ§ν©μ νμ₯νλ€. κΈ°μ‘΄μ λ¬Έμ₯ κ²½κ³ μΈμκΈ°μ μμ§μ μ΄μ©νμ¬ λ§λμΉμ λ²μλ§ λ리λ κ²μΌλ‘λ μ±λ₯μ λμ΄κΈ°μ νκ³κ° μμ΄ κ°μ’
μμ, νΉμκΈ°νΈ, μ΄λͺ¨ν°μ½μ μΆκ°νμ¬ λ€μν νμμΌλ‘ λ¬Έμ₯μ΄ μ’
κ²°λλ SNS λ¬Έμμ μ ν©νλλ‘ κ°μ νλ€. μ΄μ κ°μ κ°μ λ²μ μ μ©νμ¬ CRFλ‘ νμ΅ν μ μλ λͺ¨λΈμ μΌλ° λ¬ΈμλΏ μλλΌ SNS λ¬Έμμμλ μ’μ μ±λ₯μ 보μλ€. λ³Έ λ
Όλ¬Έμ ꡬμ±μ λ€μκ³Ό κ°λ€. 2μ₯μμ λ¬Έμ₯ λΆλ¦¬μ κ΄λ ¨λ μ°κ΅¬λ₯Ό μ‘°μ¬νκ³ , 3μ₯μμ SNS λ¬Έμμμμ λ€μν κ³ λ €μ¬νμ μμΈν κΈ°μ νλ€. 4μ₯μμλ κ°κ° μ μλ λͺ¨λΈμ νκ°νκ³ 5μ₯μμ κ²°λ‘ μ λ§Ίκ³ ν₯ν μ°κ΅¬μ λν΄ κΈ°μ νλ€.\n4. μ€ν λ° λΆμ\n4.1 μ€ν νκ²½\nνλ ¨ λ° νκ°λ₯Ό μν΄ 3μ₯μμ κΈ°μ ν λ§λμΉ κ΅¬μΆ λ°©λ²μ λ°λΌ μΌλ° λ¬Έμμ SNS λ¬Έμμμ λ¬Έμ₯μ μΆμΆνμ¬ μ 체 λ§λμΉλ₯Ό ꡬμ±νμλ€. μ 체 λ§λμΉ μ€μμ νλ ¨ λ° νκ° λ§λμΉλ₯Ό ν 3κ³Ό κ°μ΄ λΆλ¦¬νμλ€.\n\n5. κ²°λ‘ λ° ν₯ν μ°κ΅¬\nλ³Έ λ
Όλ¬Έμμλ κΈ°κ³νμ΅ λ°©λ²μ μ΄μ©νμ¬ λ¬Έμ΄μ²΄λ‘ μ΄λ£¨μ΄μ§ μΌλ° λ¬Έμμ λΉνμμ μΈ λ¬Έμ₯μΌλ‘ ꡬμ±λ SNS λ¬Έμ λ¬Έμ₯ κ²½κ³ μΈμ λͺ¨λΈμ μ μνμλ€. νμ΅ λ§λμΉμ μμμ μΌλ° λ¬Έμμ SNS λ¬Έμλ‘ νμ₯νκ³ , SNS λ¬Έμμμ μμ£Ό 보μ΄λ ννμ λ¨μ΄ μ νμ μλ‘ μ μν΄ μ΄λ₯Ό μμ§λ‘ μ¬μ©νμ¬ ν¨κ³Όμ μΌλ‘ λ¬Έμ₯ κ²½κ³ μΈμμ μννμλ€. μ μν λͺ¨λΈμ μΌλ° λ¬Έμμ λ¬Έμ₯ κ²½κ³ μΈμ μ±λ₯μΌλ‘ 99.1%μ μ¬νμ¨μ 보μμΌλ©°, SNS λ¬Έμμμλ 88.3%μ λμ μ¬νμ¨μ 보μλ€. ν₯ν μ°κ΅¬λ‘λ νμ²λ¦¬ κ·μΉμ μ΄μ©νμ¬ μ¬νμ¨μ λ λμ¬ λ€μν λ΄μ©μ λ§λμΉλ₯Ό μ¬μ©νμ¬ λ λμ λΆμΌμμ μ΄μ© κ°λ₯ν λ¬Έμ₯ κ²½κ³ μΈμκΈ°λ₯Ό μ μνκ³ μ νλ€.\nμ°Έκ³ λ¬Έν\n[1] κΉμ£Όν¬, μμ μ°, βλΉνμμ μΈ λ¬Έμμ κ°κ±΄ν λ¬Έμ₯ κ²½κ³ μΈμβ,νκ΅μ»΄ν¨ν°μ’
ν©νμ λν λ
Όλ¬Έμ§, vol. 37, no. 1, pp. 266-270, 2010.\n[2] M. D. Riley, βSome Applications of Tree-based Modeling to Speech and Languageβ, Proceedings of the DARPA Speech and Natural Language Workshop, pp. 339-352, 1989\n[3] μν¬μ, νκ΅°ν¬, βλ©λͺ¨λ¦¬ κΈ°λ°μ κΈ°κ³ νμ΅μ μ΄μ©ν νκ΅μ΄ λ¬Έμ₯ κ²½κ³ μΈμβ, νκ΅μ½ν
μΈ ννλ
Όλ¬Έμ§ vol. 4, no. 4, pp. 133-139, 2004\n[4] μ΄μΆ©ν¬, μ₯λͺ
κΈΈ, μμν, "μΉ λ¬Έμλ₯Ό μν κ°μ λ λ¬Έμ₯κ²½κ³μΈμ λ°©λ²", μ 보과ννλ
Όλ¬Έμ§, μννΈμ¨μ΄ λ° μμ©, μ 37κΆ, μ 6νΈ, pp. 455-465, 2010.\n[5] μ΄μ£Όμ, ꡬ민μ, κΉμ ν, μ νΈμ, βλΈλ‘κ·Έ λ°μ΄ν°μ λν λ¬Έμ₯ κ²½κ³ μΈμβ, νκ΅HCIνν νμ λν, pp.1221-1223, 2014"""
for sent in split_sentences(data):
print(sent)
1. μλ‘
λ¬Έμ₯μ΄λ μκ°μ΄λ κ°μ μ λ§λ‘ ννν λ μκ²°λ λ΄μ©μ λνλ΄λ μ΅μμ λ¨μλ‘, μμ°μ΄ μ²λ¦¬μ μ£Όμ μμ
λ€μμ λ¬Έμ₯μ΄ κΈ°λ³Έμ μΈ μ²λ¦¬ λ¨μκ° λλ€.
λ¬Έμ₯ λ¨μμ μμ
μ μννκΈ° μν΄μλ μ°μ λ¬Έμ₯μ κ²½κ³λ₯Ό μΈμνλ κ²μ΄ νμνλ€[1].
μ΅κ·Ό λ€μν SNS νλ«νΌμ΄ λ±μ₯νκ³ , μ΄μ©μμ μκ° κΈμ¦ν¨μ λ°λΌ μ¨λΌμΈμμ μ»μ μ μλ λ€μν λΆμΌμ μ 보 νμ© κ°μΉκ° λμμ§κ³ μλ€.
μΌλ°μ μΌλ‘ λ¬Έμ΄μ²΄λ λΉκ΅μ μ νν ꡬλμ μ μ¬μ©νλ©°, μ νλ μ’
κ²°μ΄λ―Έλ₯Ό μ¬μ©νκ³ μμΌλ―λ‘ λΉκ΅μ κ°λ¨νκ² λ¬Έμ₯ κ²½κ³λ₯Ό μΈμν μ μλ€.
κΈ°μ‘΄μ 곡κ°λ μ¬λ¬ λ¬Έμ₯ κ²½κ³ μΈμκΈ°1)λ μΌ λ° λ¬Έμμ λν΄ λμ μ±λ₯μ 보μΈλ€.
λ°λ©΄ λκΈμ΄λ SNS λ¬Έμμλ μ’μ μ±λ₯μ 보μ΄μ§ μλλ€.
κ·Έ μ΄μ λ SNS λ¬Έ μμ λ€μκ³Ό κ°μ νΉμ§μ κ³ λ €νμ§ μμκΈ° λλ¬Έμ΄λ€.
1) ꡬλμ μ΄ μμ£Ό μλ΅λλ€.
2) νΉμκΈ°νΈλ μμλ₯Ό μ΄μ©ν λ€μν μ΄λͺ¨ν°μ½μ΄ μ¬μ©λλ€.
3) μ νμ΄, μ€μλ§ λ± μλ‘μ΄ ννμ μ’
κ²°μ΄λ―Έκ° μμ£Ό μ¬μ©λλ€.
λ³Έ λ
Όλ¬Έμ λ¬Έμ΄μ²΄λΏ μλλΌ SNSμμ μ¬μ©λλ λ€μν 문체μμλ μ μ μ©λλ λ¬Έμ₯ κ²½κ³ μΈμκΈ°λ₯Ό μ μνλ€.
μ μλ λ¬Έμ₯ κ²½κ³ μΈμκΈ°λ SNS λ¬Έμμ μ μ μ©λλλ‘ λ€μμ λ κ°μ§λ₯Ό κ°μ νλ€.
μ²«μ§Έλ‘ νμ΅ λ§λμΉλ₯Ό νμ₯ νλ€.
νμ΅ λ§λμΉλ₯Ό μΌλ° λ¬Έμλ‘λ§ μ ννμ§ μκ³ , SNS λ¬Έμλ ν¨κ» νμ΅ν μ μλλ‘ νμ΅ λ§λμΉμ SNS λ¬Έμλ₯Ό μΆκ°νλ€.
λμ§Έλ‘ μμ§ μ§ν©μ νμ₯νλ€.
κΈ°μ‘΄μ λ¬Έμ₯ κ²½κ³ μΈμκΈ°μ μμ§μ μ΄μ©νμ¬ λ§λμΉμ λ²μλ§ λ리λ κ²μΌλ‘λ μ±λ₯μ λμ΄κΈ°μ νκ³κ° μμ΄ κ°μ’
μμ, νΉμκΈ°νΈ, μ΄λͺ¨ν°μ½μ μΆκ°νμ¬ λ€μν νμμΌλ‘ λ¬Έμ₯μ΄ μ’
κ²°λλ SNS λ¬Έμμ μ ν©νλλ‘ κ°μ νλ€.
μ΄μ κ°μ κ°μ λ²μ μ μ©νμ¬ CRFλ‘ νμ΅ν μ μλ λͺ¨λΈμ μΌλ° λ¬ΈμλΏ μλλΌ SNS λ¬Έμμμλ μ’μ μ±λ₯μ 보μλ€.
λ³Έ λ
Όλ¬Έμ ꡬμ±μ λ€μκ³Ό κ°λ€.
2μ₯μμ λ¬Έμ₯ λΆλ¦¬μ κ΄λ ¨λ μ°κ΅¬λ₯Ό μ‘°μ¬νκ³ , 3μ₯μμ SNS λ¬Έμμμμ λ€μν κ³ λ €μ¬νμ μμΈν κΈ°μ νλ€.
4μ₯μμλ κ°κ° μ μλ λͺ¨λΈμ νκ°νκ³ 5μ₯μμ κ²°λ‘ μ λ§Ίκ³ ν₯ν μ°κ΅¬μ λν΄ κΈ°μ νλ€.
4. μ€ν λ° λΆμ
4.1 μ€ν νκ²½
νλ ¨ λ° νκ°λ₯Ό μν΄ 3μ₯μμ κΈ°μ ν λ§λμΉ κ΅¬μΆ λ°©λ²μ λ°λΌ μΌλ° λ¬Έμμ SNS λ¬Έμμμ λ¬Έμ₯μ μΆμΆνμ¬ μ 체 λ§λμΉλ₯Ό ꡬμ±νμλ€.
μ 체 λ§λμΉ μ€μμ νλ ¨ λ° νκ° λ§λμΉλ₯Ό ν 3κ³Ό κ°μ΄ λΆλ¦¬νμλ€.
5. κ²°λ‘ λ° ν₯ν μ°κ΅¬
λ³Έ λ
Όλ¬Έμμλ κΈ°κ³νμ΅ λ°©λ²μ μ΄μ©νμ¬ λ¬Έμ΄μ²΄λ‘ μ΄λ£¨μ΄μ§ μΌλ° λ¬Έμμ λΉνμμ μΈ λ¬Έμ₯μΌλ‘ ꡬμ±λ SNS λ¬Έμ λ¬Έμ₯ κ²½κ³ μΈμ λͺ¨λΈμ μ μνμλ€.
νμ΅ λ§λμΉμ μμμ μΌλ° λ¬Έμμ SNS λ¬Έμλ‘ νμ₯νκ³ , SNS λ¬Έμμμ μμ£Ό 보μ΄λ ννμ λ¨μ΄ μ νμ μλ‘ μ μν΄ μ΄λ₯Ό μμ§λ‘ μ¬μ©νμ¬ ν¨κ³Όμ μΌλ‘ λ¬Έμ₯ κ²½κ³ μΈμμ μννμλ€.
μ μν λͺ¨λΈμ μΌλ° λ¬Έμμ λ¬Έμ₯ κ²½κ³ μΈμ μ±λ₯μΌλ‘ 99.1%μ μ¬νμ¨μ 보μμΌλ©°, SNS λ¬Έμμμλ 88.3%μ λμ μ¬νμ¨μ 보μλ€.
ν₯ν μ°κ΅¬λ‘λ νμ²λ¦¬ κ·μΉμ μ΄μ©νμ¬ μ¬νμ¨μ λ λμ¬ λ€μν λ΄μ©μ λ§λμΉλ₯Ό μ¬μ©νμ¬ λ λμ λΆμΌμμ μ΄μ© κ°λ₯ν λ¬Έμ₯ κ²½κ³ μΈμκΈ°λ₯Ό μ μνκ³ μ νλ€.
μ°Έκ³ λ¬Έν
[1] κΉμ£Όν¬, μμ μ°, βλΉνμμ μΈ λ¬Έμμ κ°κ±΄ν λ¬Έμ₯ κ²½κ³ μΈμβ,νκ΅μ»΄ν¨ν°μ’
ν©νμ λν λ
Όλ¬Έμ§, vol. 37, no. 1, pp. 266-270, 2010.
[2] M. D. Riley, βSome Applications of Tree-based Modeling to Speech and Languageβ, Proceedings of the DARPA Speech and Natural Language Workshop, pp. 339-352, 1989
[3] μν¬μ, νκ΅°ν¬, βλ©λͺ¨λ¦¬ κΈ°λ°μ κΈ°κ³ νμ΅μ μ΄μ©ν νκ΅μ΄ λ¬Έμ₯ κ²½κ³ μΈμβ, νκ΅μ½ν
μΈ ννλ
Όλ¬Έμ§ vol. 4, no. 4, pp. 133-139, 2004
[4] μ΄μΆ©ν¬, μ₯λͺ
κΈΈ, μμν, "μΉ λ¬Έμλ₯Ό μν κ°μ λ λ¬Έμ₯κ²½κ³μΈμ λ°©λ²", μ 보과ννλ
Όλ¬Έμ§, μννΈμ¨μ΄ λ° μμ©, μ 37κΆ, μ 6νΈ, pp. 455-465, 2010.
[5] μ΄μ£Όμ, ꡬ민μ, κΉμ ν, μ νΈμ, βλΈλ‘κ·Έ λ°μ΄ν°μ λν λ¬Έμ₯ κ²½κ³ μΈμβ, νκ΅HCIνν νμ λν, pp.1221-1223, 2014
v4.0.6
Add footnote processing
- before: ["κΈ°λ‘νμ§λ λͺ»νλ€., "[12][14] μ‘°λ³λΌμ΄λ 2μ°¨μ μΈ λνλ―Όκ΅κ³Όμ"]
- after: ["κΈ°λ‘νμ§λ λͺ»νλ€.[12][14]", "μ‘°λ³λΌμ΄λ 2μ°¨μ μΈ λνλ―Όκ΅κ³Όμ"]