Search
๐Ÿงฒ

A metric for software readability

Created
2022/04/15 05:13
Tags
metric
readability
Conference
ISSTA
Published
2008
ISSTA 08
Python
๋ณต์‚ฌ

0. ์†Œ๊ฐœ

์ฃผ๋กœ โ€œ๊ฐ€๋…์„ฑโ€์€ ์‚ฌ๋žŒ๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ๋Š๋ผ๋Š” ์ฃผ๊ด€์ ์ธ ์š”์†Œ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฐ€๋…์„ฑ์€ ์œ ์ง€๋ณด์ˆ˜์™€ ๊ด€๋ จ์ด ์žˆ์œผ๋ฉฐ, ๋”ฐ๋ผ์„œ ์ „๋ฐ˜์ ์ธ ์†Œํ”„ํŠธ์›จ์–ด ํ’ˆ์งˆ์— ์žˆ์–ด ์ค‘์š”ํ•œ ์š”์†Œ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฐ๊ฒฝ์—์„œ, ๋ณธ ๋…ผ๋ฌธ์—์„œ๋Š” ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์˜ ๊ฐœ๋…์„ ์ •๋ฆฝํ•˜๊ณ  ์†Œํ”„ํŠธ์›จ์–ด ํ’ˆ์งˆ๊ณผ ๊ฐ€๋…์„ฑ ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ์กฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‚˜์•„๊ฐ€ ์‚ฌ๋žŒ์—๊ฒŒ ์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ๋ณธ ๋…ผ๋ฌธ์€ ์ฝ”๋“œ์—์„œ ๋‚˜ํƒ€๋‚˜๋Š” ํŠน์ง•๊ณผ ์‚ฌ๋žŒ์ด ์ƒ๊ฐํ•˜๋Š” ๊ฐ€๋…์„ฑ ์‚ฌ์ด์˜ ์—ฐ๊ด€์„ฑ์„ ๋„์ถœํ•˜๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ๋กœ์šด ๊ธฐ์ค€์„ ์ œ์ž‘ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

1. ๋ฐฐ๊ฒฝ์ง€์‹

Software Readability vs. Software Complexity

๊ฐ€๋…์„ฑ์ด๋ผ๊ณ  ํ‘œํ˜„๋˜๋Š” software readability์™€ ๋ณต์žก๋„๋ผ๊ณ  ํ‘œํ˜„๋˜๋Š” software complexity๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐœ๋…์ž„์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ณต์žก๋„, ์ฆ‰ software complexity๋Š” ์„ฑ๋Šฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ฒ™๋„๋กœ, ๋ณธ ๋…ผ๋ฌธ์—์„œ ๋ณต์žก๋„๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ํ•„์ˆ˜์ ์ธ ์š”์†Œ๋ผ๊ณ  ์ฃผ์žฅํ•ฉ๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ๋ณต์žก๋„ ๋ฉ”ํŠธ๋ฆญ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ํด๋ž˜์Šค/๋ฉ”์„œ๋“œ์˜ ํฌ๊ธฐ ๋ฐ ์ƒํ˜ธ ์ž‘์šฉ์˜ ๋ฒ”์œ„๋ฅผ ๊ณ ๋ คํ•œ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฐ˜๋ฉด์— ๊ฐ€๋…์„ฑ(software readability)์˜ ๊ฒฝ์šฐ์—๋Š” ์ˆ˜์น˜ํ™” ๋  ์ˆ˜ ์—†๋Š” ์š”์†Œ์ž…๋‹ˆ๋‹ค. ์ฃผ๋กœ ์ฃผ์„, ๋ณ€์ˆ˜๋ช…, ์ธ๋ดํŠธ ๋“ฑ์˜ ์š”์†Œ๋“ค์„ ๊ฐ€๋…์„ฑ์˜ ์˜ˆ์‹œ๋กœ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ํ”„๋กœ๊ทธ๋žจ์ด ๊ตฌ๋™๋˜๋Š”๋ฐ ์žˆ์–ด์„œ ์ด ์š”์†Œ๋“ค์€ ํฐ ์ฐจ์ด๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋น„๊ต์  ์ถ”์ƒ์ ์ด๋ฉฐ ์ฃผ๊ด€์ ์ž…๋‹ˆ๋‹ค.
ํ•œ ๊ฐ€์ง€ ์งš๊ณ  ๋„˜์–ด๊ฐˆ ๋ถ€๋ถ„์€ ๊ฐ€๋…์„ฑ๊ณผ ๋ณต์žก๋„๋Š” ์—ฐ๊ด€๋˜์–ด์žˆ์ง€ ์•Š๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ๋‚ฎ์€ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ฝ”๋“œ๊ฐ€ ๋†’์€ ๊ฐ€๋…์„ฑ์„ ๋œปํ•˜์ง€๋Š” ์•Š์œผ๋ฉฐ, ๋ฐ˜๋Œ€๋กœ ๋†’์€ ๊ฐ€๋…์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ฝ”๋“œ๊ฐ€ ๋‚ฎ์€ ๋ณต์žก๋„๋ฅผ ๋œปํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์—ฐ๊ตฌ์ง„๋“ค์€ ๊ฐ€๋…์„ฑ์— ๋Œ€ํ•ด์„œ ์—ฐ๊ตฌํ•˜๋Š” ๊ฒƒ์ด ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ฐ€๋…์„ฑ ๋ฉ”ํŠธ๋ฆญ์„ ๊ฐœ๋ฐœํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

2. ๋…ผ๋ฌธ ๋‚ด์šฉ

Human Readability Annotation

๋ณธ ๋…ผ๋ฌธ์—์„œ๋Š” ๊ฐ€์žฅ ๋จผ์ € ๊ฐ€๋…์„ฑ์— ๋Œ€ํ•œ ๊ธฐ์ค€์„ ์„ธ์› ์Šต๋‹ˆ๋‹ค. ๋ณธ ์—ฐ๊ตฌํŒ€์€ ์ฃผ๊ด€์ ์ธ ์š”์†Œ๋ฅผ ๊ฐ๊ด€์ ์œผ๋กœ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด์„œ Snippet Selection Policy, ๊ทธ๋ฆฌ๊ณ  Readability Scoring์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ€๋…์„ฑ ํ‰๊ฐ€๋ฅผ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
Snippet Selection Policy
์—ฐ๊ตฌํŒ€์€ ๊ฐ€๋…์„ฑ์— ๋Œ€ํ•œ ํ‰๊ฐ€๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์ „ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์กฐ๊ฑด๋“ค์„ ์ถฉ์กฑํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.
โ€ข
์ ๋‹นํžˆ ์งง์€ ๊ธธ์ด: snippet์€ ์ •๋ณด ํŒŒ์•…์ด ๋  ์ •๋„์˜ ๋ฒ”์œ„ ์•ˆ์—์„œ ์ตœ๋Œ€ํ•œ ์งง์•„์•ผ ํ•œ๋‹ค. (context๋ณด๋‹ค๋Š” local feature๋ฅผ ์ค‘์‹œ)
โ€ข
๋…ผ๋ฆฌ์  ์ผ๊ด€์„ฑ: ์ตœ๋Œ€ํ•œ ๋งŽ์€ ์ •๋ณด ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด, statement์™€ ์ธ์ ‘ํ•œ ์ฃผ์„๋„ ๋ชจ๋‘ ํฌํ•จ
โ€ข
์ฝ”๋“œ๊ฐ€ ์˜๋ฏธ๊ฐ€ ์žˆ๋Š”์ง€: ์ฃผ์„์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ฑฐ๋‚˜ dependency๋งŒ ๋‚˜์—ด๋˜์–ด์žˆ๋Š” ์ฝ”๋“œ ๋‹จ์œ„๋Š” ์˜๋ฏธ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Š” ์ œ์™ธ
์ด๋Ÿฌํ•œ ์กฐ๊ฑด ์•„๋ž˜ ๋‹ค์Œ๊ณผ ๊ฐ™์ด snippet์ด๋ผ๋Š” ๊ฐœ๋…์„ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค. 3๊ฐœ๋ฅผ ์„ ์ •ํ•œ ์ด์œ ๋Š” ๊ฒฝํ—˜์ ์œผ๋กœ ์„ ํƒํ•œ ๊ฒƒ์ด๋ผ๊ณ  ํ•˜๋ฉฐ, 3๊ฐœ์˜ snippet์ด local feature, ๊ทธ๋ฆฌ๊ณ  feature-based ๋ถ„์„์— ์ ํ•ฉํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•˜์˜€์Šต๋‹ˆ๋‹ค.
Snippet : 3๊ฐœ์˜ ์—ฐ์†์ ์ธ simple statements๋กœ ์ด๋ฃจ์–ด์ง„ ํ•˜๋‚˜์˜ ๋ฌถ์Œ ๋‹จ, Java program์œผ๋กœ ํ•œ์ •ํ•˜๋ฉฐ, simple statements๋Š” field declarations, assignments, function calls, breaks, continues, throws, return ์ค‘ ํ•˜๋‚˜
์œ„ ์ •์˜์™€ ๋”๋ถˆ์–ด ๋ช‡ ๊ฐ€์ง€ ์กฐ๊ฑด๋“ค์ด ์žˆ๋Š”๋ฐ, ์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
โ€ข
snippet์€ statement๋“ค ์‚ฌ์ด line๋“ค๋„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. (ex. ์ฃผ์„, ํ•จ์ˆ˜ ํ—ค๋”, ๋นˆ ์ค„, ๋ณตํ•ฉ๋ฌธ์˜ ํ—ค๋” ๋“ฑ)
โ€ข
snippet์€ scope๋ฅผ ๋ฒ—์–ด๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. (ex. ํ•จ์ˆ˜/๋ณตํ•ฉ๋ฌธ ์•ˆ์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ๋ฐ–์—์„œ ๋๋‚˜๋Š” ๊ฒฝ์šฐ)
์ด ๋ฐฉ๋ฒ•์œผ๋กœ snippet์„ ๋ถ„๋ฅ˜ํ•œ ๊ฒฐ๊ณผ, ํƒ€๊ฒŸ ๋‚ด 90%์˜ statement๊ฐ€ snippet์— ํฌํ•จ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ snippet๋‹น ํ‰๊ท ์ ์œผ๋กœ 7.7๊ฐœ์˜ statement๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Œ์„ ํ™•์ธํ–ˆ์œผ๋ฉฐ, snippet์— ํฌํ•จ๋˜์ง€ ์•Š์€ 10%๋Š” 2๊ฐœ ์ดํ•˜์˜ statement๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ํ•จ์ˆ˜์˜€์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ณธ ์—ฐ๊ตฌ์—์„œ๋Š” Java๋กœ ํ•œ์ •ํ•˜์—ฌ ์ง„ํ–‰ํ•˜์˜€์ง€๋งŒ, C์™€ C++๋“ฑ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ๋„ ํ™•์žฅํ•˜๊ธฐ ์šฉ์ดํ•  ๊ฒƒ์ด๋ผ๊ณ  ์—ฐ๊ตฌํŒ€์€ ์ฃผ์žฅํ•ฉ๋‹ˆ๋‹ค.
Readability Scoring
๋ณธ ์—ฐ๊ตฌ์˜ ํ‰๊ฐ€์ง€ํ‘œ๋Š” ๋ด‰์‚ฌ์ž์˜ ๊ฐ€๋…์„ฑ ํ‰๊ฐ€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์œ„์—์„œ ์„ค๋ช…ํ•œ snippet์„ ๊ธฐ๋ฐ˜์œผ๋กœ Snippet Sniper๋ผ๋Š” ํˆด์„ ๊ฐœ๋ฐœํ•˜์˜€์œผ๋ฉฐ, 120๋ช…์˜ ํ‰๊ฐ€์ž๊ฐ€ 100๊ฐœ์˜ snippet์„ ํ‰๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ‰๊ฐ€๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ๋”ฐ๋กœ ๊ธฐ์ค€์€ ์•ˆ๋‚ดํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ, ๊ฐœ์ธ์ ์œผ๋กœ ํ‰๊ฐ€๋ฅผ ์ง„ํ–‰ํ•˜์˜€๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
ํ‰๊ฐ€์ž๋“ค์€ ๋ชจ๋‘ ์ปดํ“จํ„ฐ๊ณตํ•™๊ณผ์˜ ํ•™์ƒ๋“ค์ด์—ˆ์œผ๋ฉฐ, snippet์€ 5๊ฐœ์˜ open source ํ”„๋กœ์ ํŠธ์—์„œ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. (๊ฐ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋Š” Figure 8์— ๊ธฐ์ˆ ) ๊ฐ ํ”„๋กœ์ ํŠธ๋Š” ๋‹ค์–‘ํ•œ ์ฝ”๋“œ์˜ ์ˆ˜์ค€์„ ๊ณ ๋ คํ•˜์˜€๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
100๊ฐœ์˜ snippet์— ๋Œ€ํ•œ ํ‰๊ฐ€๋Š” Pearson product-moment correlation coefficient๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ‰๊ฐ€์ž๊ฐ€ X snippet์„ Y snippet๋ณด๋‹ค ๋†’๊ฒŒ ํ‰๊ฐ€ํ•œ ๊ฒฝ์šฐ, X๋ฅผ ๋” ์ข‹์€ snippet์ด๋ผ๊ณ  ํŒ๋‹จํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. Pearson correlation์€ 1์ผ๋•Œ ์™„๋ฒฝํ•˜๊ฒŒ ์ƒ๊ด€ ๋ถ„์„์ด ์žˆ์œผ๋ฉฐ, 0์ผ๋•Œ ์ƒ๊ด€ ๋ถ„์„์ด ์ „ํ˜€ ์—†๋‹ค๊ณ  ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค.
๋ณธ ์—ฐ๊ตฌ์—์„œ๋Š” Pearson correlation์„ ํ™•์žฅํ•˜์—ฌ correlation์˜ ํ‰๊ท ๊ฐ’์„ ๋„์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ 0.56์˜ correlation์„ ๋„์ถœํ•ด๋ƒˆ์œผ๋ฉฐ, ์ด๋Š” ํ†ต๊ณ„์ ์œผ๋กœ ์ ๋‹นํ•œ ์ƒ๊ด€๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค. ํ‰๊ท  ์ด์™ธ์—๋„ ์ค‘๊ฐ„๊ฐ’ ๋ฐ ์ตœ๋นˆ๊ฐ’์œผ๋กœ๋„ ์‹œํ—˜ํ•ด๋ณด์•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„ ๋น„์Šทํ•œ ๊ฐ’์ด ๋‚˜์™€์„œ ๋‹ค๋ฅธ ์š”์†Œ๋“ค๊ณผ ๋น„๊ตํ•˜๊ธฐ ํŽธํ•œ ํ‰๊ท ์„ ๋น„๊ต ์ง€ํ‘œ๋กœ ์„ ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.
์ด survey๋ฅผ ํ†ตํ•ด ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด ๊ณตํ†ต์ ์œผ๋กœ ๊ฐ€๋…์„ฑ์„ ํ‰๊ฐ€ํ•˜๋Š” ์š”์†Œ๊ฐ€ ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ์œผ๋ฉฐ, ์ด ๊ณตํ†ต์ ์ธ ์š”์†Œ๋ฅผ ์ฐพ์•„๋‚ด๋Š”๋ฐ ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์ž„์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Readability Model

๋ณธ ์—ฐ๊ตฌํŒ€์€ ์•ž์„œ Pearson correlation์„ ํ†ตํ•ด ๋„์ถœํ•œ ๋ชจ๋ธ์„ ํ†ตํ•ด readability model์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ ์‚ฌ๋žŒ๋“ค์ด ๊ฐ€๋…์„ฑ์„ ํŒ๋‹จํ•˜๋Š” ๋ฐ์—๋Š” ์–ด๋Š์ •๋„ ์ƒ๊ด€๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๊ฒฐ๊ณผ๋Š” ์–ด๋Š์ •๋„์˜ ๊ฒฝํ–ฅ์„ฑ์ด์ง€, ๊ฐ๊ด€์ ์ธ ํŒ๋‹จ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๊ธฐ๊ณ„์ ์œผ๋กœ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.
Model Generation
์—ฐ๊ตฌํŒ€์€ ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ snippet์—์„œ ๊ฐ€๋…์„ฑ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ํŠน์ง•์„ ์ถ”์ถœํ•ด๋ƒˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ตฌ์กฐ, ์ฝ”๋“œ์˜ density, ๋…ผ๋ฆฌ์  ๋ณต์žก์„ฑ ๋“ฑ๊ณผ ๊ด€๋ จ๋œ ์š”์ธ์œผ๋กœ ์„ ์ •ํ•˜์˜€์œผ๋ฉฐ, ์•ž์„œ snippet์„ ์ •ํ•  ๋•Œ์ฒ˜๋Ÿผ ์ฝ”๋“œ ๋ธ”๋ก์˜ ํฌ๊ธฐ์™€๋Š” ๋ฌด๊ด€ํ•œ ํŠน์ง•๋“ค์„ ์ถ”์ถœํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ Figure 4๋Š” ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์„ ํŒ๋‹จํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํŠน์ง•๋“ค์ž…๋‹ˆ๋‹ค.
๊ฐ ํŠน์ง•์€ ์ž๋ฐ” ์†Œ์Šค ์ฝ”๋“œ์˜ ์ž„์˜ ํฌ๊ธฐ ๋ธ”๋ก์— ์ ์šฉ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ ๊ฐ€๋Šฅ์€ ์ค„ ๋‹น ํ‰๊ท ๊ฐ’ ํ˜น์€ ์ „์ฒด์˜ ์ตœ๋Œ“๊ฐ’์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ์š”์†Œ๋Š” ๋จธ์‹ ๋Ÿฌ๋‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ์ฝ”๋“œ snippet์„ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒกํ„ฐ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜์ด ๋ฉ๋‹ˆ๋‹ค.
์‚ฌ๋žŒ์ด ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ํŒ๋‹จํ•  ๋•Œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์š”์†Œ๋ฅผ ๋ณตํ•ฉ์ ์œผ๋กœ ํŒ๋‹จํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์—ฐ๊ตฌํŒ€์€ ์ธ์Šคํ„ด์Šค(instance)๊ธฐ๋ฐ˜์œผ๋กœ ํŒ๋‹จํ•˜๋Š” classifier๋ฅผ ์„ ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” ์ธ์Šคํ„ด์Šค๋Š” snippet์—์„œ ์ถ”์ถœ๋œ ๋ฒกํ„ฐ์ž…๋‹ˆ๋‹ค. classifier๋ฅผ trainingํ•  ๋•Œ๋Š” survey๋ฅผ ํ†ตํ•ด ์–ป์€ โ€˜์ •๋‹ตโ€™์„ ํ•จ๊ป˜ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋ธ์€ โ€˜๋” ๊ฐ€๋…์„ฑ์ด ๋†’์€โ€™, ๊ทธ๋ฆฌ๊ณ  โ€˜๊ฐ€๋…์„ฑ์ด ๋‚ฎ์€โ€™ ์ฝ”๋“œ๋กœ ๋‚˜๋ˆ„์–ด ๊ตฌ๋ถ„์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. test set์„ ์ œ๊ณตํ•  ๋•Œ๋Š” Figure 3์—์„œ 3.15 ๋ฏธ๋งŒ์˜ ์ ์ˆ˜๋ฅผ ๋ฐ›์€ snippet์„ โ€˜๊ฐ€๋…์„ฑ์ด ๋‚ฎ์€โ€™ ์ฝ”๋“œ snippet์œผ๋กœ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ ์ดํ›„์—๋Š” test set์—๋Š” ์—†๋Š” ์˜ˆ์‹œ๋“ค์— ๋Œ€ํ•ด ๋ถ„๋ฅ˜๋ฅผ ์ง„ํ–‰ํ–ˆ๊ณ , Weka machine learning toolbox๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์–‘์— ๋น„ํ•ด ๋ณต์žกํ•œ ๋ชจ๋ธ์„ ๊ตฌ์„ฑํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฒ„ํ”ผํŒ…์˜ ์œ„ํ—˜์ด ์žˆ์–ด, ์ด๋Š” 10-fold cross validation์„ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ „์ฒด ๋ฐ์ดํ„ฐ์…‹์„ 10๊ฐœ๋กœ ๋ถ„ํ• ํ•˜์—ฌ ๊ฐ๊ฐ์˜ subset์ด ๊ฒ€์ฆ set์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์—ฌ ํŽธํ–ฅ์„ ์ค„์ด๋Š” ๊ฒ€์ฆ ๊ณผ์ •์ž…๋‹ˆ๋‹ค.
Model Performance
์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ์‹คํ—˜์—์„œ๋Š” recall๊ณผ precision์„ ํ‰๊ฐ€ ์ง€ํ‘œ๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์—ฐ๊ตฌํŒ€์€ recall๊ณผ precision์˜ ์กฐํ™”ํ‰๊ท ์ธ f-score๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‰๊ฐ€๋ฅผ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด๋ฅผ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์ด 10๊ฐœ์˜ classifier๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์‹คํ—˜์„ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ๋‹ค์ค‘๋ ˆ์ด์–ด perceptron, Bayesian classifier, ๊ทธ๋ฆฌ๊ณ  Voting Feature Interval approach๊ฐ€ ๊ฐ€์žฅ ์ข‹์€ ์„ฑ๋Šฅ(์ •ํ™•๋„ 75%~80%)์„ ๋ถ€์—ฌ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ์„ธ classifier ๋ชจ๋‘ ๋น„์Šทํ•œ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ฃผ์—ˆ์œผ๋‚˜, Bayesian classifier๊ฐ€ ๊ฐ€์žฅ ๋นจ๋ž๊ธฐ ๋•Œ๋ฌธ์— ์ถ”ํ›„์—๋„ ๋ณธ classifier๋ฅผ ํ†ตํ•ด ๋ถ„์„์„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
์œ„ Figure 5์™€ Figure 6์ฒ˜๋Ÿผ, ์—ฐ๊ตฌํŒ€์ด ๋งŒ๋“  ๋ชจ๋ธ์ด ๋” ์ข‹์€ ์ƒ๊ด€๊ด€๊ณ„๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” personal preference๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ๋” ํ†ต์ผ์„ฑ์ด ์ข‹๋‹ค๋Š” ๊ฒƒ์œผ๋กœ ์—ฐ๊ตฌํŒ€์€ ํ•ด์„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ ์—ฐ๊ตฌํŒ€์€ ๊ฐ๊ฐ feature์— ๋Œ€ํ•ด์„œ ์–ด๋–ค ์š”์†Œ๊ฐ€ ๊ฐ€์žฅ ๋งŽ์€ ์˜ํ–ฅ์„ ์ฃผ๋Š”์ง€ ๋˜ํ•œ ๋ถ„์„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด โ€˜average line lengthโ€™์™€ โ€˜average number of identifiers per lineโ€™์€ ๊ฐ€๋…์„ฑ์— ์žˆ์–ด ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ โ€˜average identifier lengthโ€™๋Š” ๊ทธ ์ž์ฒด๋กœ ๋งค์šฐ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์š”์†Œ๋Š” ์•„๋‹ˆ๋ฉฐ, ๊ตฌ์กฐ, ๋ฃจํ”„ ๋˜๋Š” ๋น„๊ต ์—ฐ์‚ฐ์ž์˜ ๊ฒฝ์šฐ์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค.

Correlating Readability with Software Quality

๋งˆ์ง€๋ง‰์œผ๋กœ ๋ณธ ์—ฐ๊ตฌ์—์„œ ์ •๋ฆฝํ•œ metric์ด ์‹ค์ œ software quality์™€๋„ ๊ด€๋ จ์ด ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด์„œ ํƒ๊ตฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ™•์ธํ•ด๋ณด๊ธฐ ์œ„ํ•ด 1) ๋ฒ„๊ทธ๋ฅผ ์ฐพ์•„์ฃผ๋Š” ๋„๊ตฌ์ธ FindBugs์™€ ์ƒ๊ด€๊ด€๊ณ„๊ฐ€ ์žˆ๋Š”์ง€ ๋ถ„์„ํ•˜๊ณ , 2) ๋Œ€ํ˜• ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ ๋ฒ„์ „ ์‚ฌ์ด์˜ ์ฝ”๋“œ ๋ณ€๊ฒฝ๊ณผ ๊ฐ€๋…์„ฑ ์‚ฌ์ด์˜ ์ƒ๊ด€๊ด€๊ณ„๊ฐ€ ์žˆ๋Š”์ง€ ๋ถ„์„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์„ ํ†ตํ•ด ๊ฐ€๋…์„ฑ์— ๋Œ€ํ•œ ํŠธ๋ Œ๋“œ๋ฅผ ํƒ๊ตฌํ•ฉ๋‹ˆ๋‹ค.
Readability Correlations
์ฒซ ๋ฒˆ์งธ ์‹คํ—˜์œผ๋กœ, Findbugs์™€ ๊ฐ€๋…์„ฑ ์‚ฌ์ด์˜ ์ƒ๊ด€๊ด€๊ณ„๋ฅผ ์•Œ์•„๋‚ด๊ธฐ ์œ„ํ•ด ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ์…‹์„ ์ถ”๊ฐ€์ ์œผ๋กœ ์ƒ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. Findbugs๋ฅผ ํ†ตํ•ด ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ๊ฒฌ๋œ ํ•จ์ˆ˜๋“ค์„ โ€˜๊ฐ€๋…์„ฑ์ด ๋‚ฎ์€โ€™ ๋ฐ์ดํ„ฐ๋กœ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ชจ๋ธ ์„ค์ •์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
๋‘ ๋ฒˆ์งธ ์‹คํ—˜์œผ๋กœ๋Š” ์ฝ”๋“œ ์—…๋ฐ์ดํŠธ๊ฐ€ ๊ฐ€๋…์„ฑ๊ณผ ์—ฐ๊ด€์ด ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด์„œ ํƒ๊ตฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ๋Š” ์ฝ”๋“œ์— ๋Œ€ํ•ด์„œ ๋” ์ข‹์€ ํ’ˆ์งˆ์˜ ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊ฐ€์ •ํ•˜๊ณ , 2๊ฐœ์˜ ๊ฐ€์žฅ ์ตœ์‹  ๋ฒ„์ „์„ ๋น„๊ตํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ณง ํŒจ์น˜๊ฐ€ ์ด๋ฃจ์–ด์งˆ ์ฝ”๋“œ์ž„์„ ์ถ”์ธกํ•˜๋Š” ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜๊ณ ์ž ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํŠน์ดํ•œ ์ ์€ ๊ฐ€๋…์„ฑ์— ์ค‘์ ์„ ๋‘๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ณต๋ฐฑ๋„ ๋ณ€๊ฒฝ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•˜์˜€์Šต๋‹ˆ๋‹ค.
Figure 9๋Š” ๋‘ ์‹คํ—˜์˜ ๊ฒฐ๊ณผ๋ฅผ ์š”์•ฝํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋จผ์ € FindBugs์™€์˜ ์ƒ๊ด€๊ด€๊ณ„ ํ‰๊ท ๊ฐ’์€ 0.61์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ์— ๋Œ€ํ•œ ์ƒ๊ด€๊ด€๊ณ„ ํ‰๊ท ๊ฐ’์€ 0.63์ž…๋‹ˆ๋‹ค. ํ•œ ๊ฐ€์ง€ ์œ ์˜ํ•  ์ ์€ ๋ณธ ์—ฐ๊ตฌ์˜ ๋ชฉํ‘œ๋Š” FindBugs ๋ฐ ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ์— ๋Œ€ํ•ด ๋†’์€ ์ƒ๊ด€๊ด€๊ณ„๋ฅผ ๊ฐ–๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜์ ์ธ ์œ ์šฉ์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ์†Œํ”„ํŠธ์›จ์–ด ํ’ˆ์งˆ๊ณผ ๊ด€๋ จ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ฃผ์žฅํ•ฉ๋‹ˆ๋‹ค.
Figure 10์€ ๋ณธ ๋ชจ๋ธ์˜ ์ •ํ™•๋„์— ๋Œ€ํ•ด์„œ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” (๋ฒ„๊ทธ๊ฐ€ ์žˆ๋Š”, ํ˜น์€ ์ด์ „ ๋ฒ„์ „์˜ ์ฝ”๋“œ) ์ฝ”๋“œ์— ๋Œ€ํ•ด์„œ ๋ถ„๋ฅ˜๋ฅผ ์ง„ํ–‰ํ–ˆ์„ ๋•Œ, ๊ทธ ์ฝ”๋“œ์— ๋Œ€ํ•ด์„œ ํ‰๊ท ์ ์œผ๋กœ 150% ์ด์ƒ์˜ ํ™•๋ฅ ๋กœ ์•ˆ์ข‹์€ ์ฝ”๋“œ๋กœ ๋ถ„๋ฅ˜ํ•  ๊ฒƒ์ด๋ผ๋Š” ๊ฒฐ๋ก ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
๊ฒฐ๋ก ์ ์œผ๋กœ ์—ฐ๊ตฌํŒ€์ด ๊ฐœ๋ฐœํ•œ ๋ชจ๋ธ์€ ๋‹จ์ˆœํžˆ ๊ฐ€๋…์„ฑ์— ๋Œ€ํ•œ ํ‰๊ฐ€๋ฅผ ๋‚ด๋ฆด ๋ฟ๋งŒ์•„๋‹ˆ๋ผ, ์†Œํ”„ํŠธ์›จ์–ด์˜ ํ’ˆ์งˆ์— ๋Œ€ํ•œ ๊ฒƒ ๋˜ํ•œ ์‹œ์‚ฌํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
Software Lifecycle
๋งˆ์ง€๋ง‰์œผ๋กœ ์—ฐ๊ตฌํŒ€์€ ์™ธ๋ถ€ ์š”์ธ์— ๋Œ€ํ•œ ๊ฐ€๋…์„ฑ ๋ฉ”ํŠธ๋ฆญ์˜ ๊ด€๊ณ„๋ฅผ ์กฐ์‚ฌํ•˜๊ธฐ ์œ„ํ•ด Software Lifecyle์— ๊ฑฐ์นœ ๋ณ€ํ™”๋ฅผ ์กฐ์‚ฌํ•˜์˜€๋‹ค.
Figure 11์„ ๋ณด๋ฉด Software Lifecycle์— ์žˆ์–ด์„œ ๊ฐ€๋…์„ฑ์ด ์–ด๋–ป๊ฒŒ ๋ณ€ํ™”ํ•˜๋Š”์ง€ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ํฌ๊ฒŒ ์„ฑ์žฅํ•˜์ง€๋Š” ์•Š๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋Š” ์ค‘๊ฐ„์— ์ƒˆ๋กœ์šด API๋‚˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง„ ๊ฒƒ์œผ๋กœ ํ•ด์„ํ•˜๊ณ  ์žˆ๋‹ค.
๋”ฐ๋ผ์„œ Figure 12์˜ ๊ฒฐ๊ณผ์ฒ˜๋Ÿผ ํ”„๋กœ์ ํŠธ์˜ ์„ฑ์ˆ™๋„์™€ ๊ฐ€๋…์„ฑ์„ ๋ถ„์„ํ•˜๋Š” ๋˜๋‹ค๋ฅธ ์‹คํ—˜์„ ์ง„ํ–‰ํ–ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋” ์„ฑ์ˆ™ํ•œ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋” ์ฝ๊ธฐ ์‰ฌ์šด ๊ฒฝํ–ฅ์ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ด ๋‘ ์‹คํ—˜์„ ํ†ตํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹œ๊ฐ„์ด ์ง€๋‚ ์ˆ˜๋ก ์ฝ”๋“œ์˜ ์ผ๋ถ€๋ถ„๋งŒ ๋ณด์ˆ˜๋˜๊ณ  ๋ณ€๊ฒฝ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋…์„ฑ์€ ๋‚ฎ์•„์ง„๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ์™€ ๋ณ„๊ฐœ๋กœ ํ”„๋กœ์ ํŠธ์˜ ์„ฑ์ˆ™๋„๊ฐ€ ๋†’์•„์ง„๋‹ค๋ฉด ๊ฐ€๋…์„ฑ์€ ๋†’์•„์ง„๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

Discussions & Future Work

Discussions
์—ฐ๊ตฌ๋ฅผ ํ•˜๋ฉด์„œ ์•Œ์•„๋‚ธ ๋ถ€๋ถ„๋“ค
โ€ข
Identifier length๋Š” ๊ฐ€๋…์„ฑ์— ์ „ํ˜€ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Œ
โ€ข
์ฃผ์„์€ ์ƒ๊ฐ๋ณด๋‹ค ๊ฐ€๋…์„ฑ์„ ํฌ๊ฒŒ ๋Š˜๋ฆฌ์ง€ ์•Š์Œ (๋‚œํ•ดํ•  ๋•Œ ๋„์›€์„ ์ฃผ๋Š” ์ •๋„)
โ€ข
Identifier์˜ ์ˆ˜ ๋ฐ ๊ธ€์ž์ˆ˜๋Š” ์•„์ฃผ ํฐ ์˜ํ–ฅ์„ ์คŒ (์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์งˆ์ˆ˜๋ก ์ฝ๊ธฐ ํž˜๋“ฌ)
Future Work
โ€ข
personal preference์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ
โ€ข
ํŒ๋‹จ ๊ธฐ์ค€; ํ‰๊ท /์ตœ๋Œ“๊ฐ’ ์™ธ์˜ simple statement์˜ ๊ฐœ์ˆ˜ ๋“ฑ ์ถ”๊ฐ€ํ•ด๋„ ์˜๋ฏธ์žˆ์„ ๋“ฏ
โ—ฆ
ํ•ด๋‹น ์—ฐ๊ตฌ์—์„œ๋Š” ์ตœ๋Œ€ํ•œ ๊ฐ„๋‹จํ•˜๊ฒŒ ํŒ๋‹จ์š”์†Œ๋ฅผ ๊ฐ€์ ธ๊ฐ€๊ธฐ ์œ„ํ•ด ์ฑ„ํƒ X

3. ๊ฒฐ๋ก 

๋ณธ ๋…ผ๋ฌธ์€ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฐ€๋…์„ฑ์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•˜๊ณ , ๋‚˜์•„๊ฐ€ ๊ฐ€๋…์„ฑ๊ณผ ํ”„๋กœ๊ทธ๋žจ์˜ ํ’ˆ์งˆ์ด ์—ฐ๊ด€์ด ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด ์—ฐ๊ตฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์†Œํ”„ํŠธ์›จ์–ด ํ’ˆ์งˆ๊ณผ ์—ฐ๊ด€์ด ์žˆ์Œ์„ ์ฆ๋ช…ํ•œ ๋ถ€๋ถ„์— ์žˆ์–ด ์˜๋ฏธ๊ฐ€ ์žˆ๋Š” ์—ฐ๊ตฌ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

4. References

๋…ผ๋ฌธ์—์„œ ์‚ฌ์šฉํ•œ dataset: https://web.eecs.umich.edu/~weimerw/data/readability/