惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
C
CXSECURITY Database RSS Feed - CXSecurity.com
V
Visual Studio Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
小众软件
小众软件
L
LangChain Blog
Cyberwarzone
Cyberwarzone
美团技术团队
The Register - Security
The Register - Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tor Project blog
V
V2EX
Security Archives - TechRepublic
Security Archives - TechRepublic
Hacker News: Ask HN
Hacker News: Ask HN
L
LINUX DO - 最新话题
Recent Announcements
Recent Announcements
H
Hackread – Cybersecurity News, Data Breaches, AI and More
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
aimingoo的专栏
aimingoo的专栏
人人都是产品经理
人人都是产品经理
F
Full Disclosure
V2EX - 技术
V2EX - 技术
The Cloudflare Blog
博客园 - 叶小钗
T
Threat Research - Cisco Blogs
阮一峰的网络日志
阮一峰的网络日志
G
GRAHAM CLULEY
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Latest news
Latest news
S
Security @ Cisco Blogs
Spread Privacy
Spread Privacy
Project Zero
Project Zero
K
Kaspersky official blog
MyScale Blog
MyScale Blog
Attack and Defense Labs
Attack and Defense Labs
云风的 BLOG
云风的 BLOG
博客园 - 【当耐特】
Hacker News - Newest:
Hacker News - Newest: "LLM"
大猫的无限游戏
大猫的无限游戏
P
Privacy International News Feed
Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
C
Cybersecurity and Infrastructure Security Agency CISA
Webroot Blog
Webroot Blog
罗磊的独立博客
Vercel News
Vercel News
N
News and Events Feed by Topic
A
Arctic Wolf
C
CERT Recently Published Vulnerability Notes

Hacker News

Introducing Claude Opus 4.7 Qwen Studio The Future of Everything is Lies, I Guess: Where Do We Go From Here? GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis Moving a large-scale metrics pipeline from StatsD to OpenTelemetry / Prometheus GitHub - Nightmare-Eclipse/RedSun: The Red Sun vulnerability repository GitHub - SethPyle376/hiraeth: Local AWS emulator focused on fast integration testing, with SQS support, SQLite-backed state, and a debug-friendly web UI. GitHub - macOS26/Agent: Any AI, replaces Claude Code, Cursor, OpenClaw. Over 18 LLM providers (Claude, OpenAI, Gemini, Ollama, Zai, HF, Qwen) wired into a native Mac app that writes code, builds Xcode projects, bumps versions, manages git, automates Safari, use AppleScript, JS or Accessibility, extend Agent! w/ MCP Servers, run tasks from your iPhone via Messages. YouTube now lets you turn off Shorts I Made a Terminal Pager Burgers | マクドナルド公式 Commands — HackerNews CLI documentation ChatGPT for Excel PiCore - Raspberry Pi Port of Tiny Core Linux Live Nation illegally monopolized ticketing market, jury finds Google Broke Its Promise to Me. Now ICE Has My Data. Founding Engineer at Adaptional | Y Combinator CRISPR takes important step toward silencing Down syndrome’s extra chromosome GitHub - saffron-health/libretto: The AI toolkit for building reliable browser automations US v. Heppner (S.D.N.Y. 2026) no attorney-client privilege for AI chats [pdf] Unexpected €54k billing spike in 13 hours: Firebase browser key without API restrictions used for Gemini requests Retrofitting JIT Compilers into C Interpreters IPv6 – Google The Accursèd Alphabetical Clock Cybersecurity Looks Like Proof of Work Now Fragments: April 14 Cal.com Goes Closed Source: Why AI Security Is Forcing Our Decision | Cal.com - Scheduling Software for Online Bookings Laravel raised money and now injects ads directly into your agent When moving fast, talking is the first thing to break Too much Discussion of the XOR swap trick – Heather Cafe Introduction to Spherical Harmonics for Graphics Programmers The Grand Line Building a Z-Machine in the worst possible language High-Level Rust: Getting 80% of the Benefits with 20% of the Pain GitHub - duguyue100/midnight-captain: Inspired by Midnight Commander, tailored to my taste. How to build a `git diff` driver · Jamie Tanna | Software Engineer Center for Responsible, Decentralized Intelligence at Berkeley The Local Universe’s Expansion Rate Is Clearer Than Ever, but Still Doesn’t Add Up - A new synthesis of astronomical measurements confirms a persistent mismatch that could point to physics beyond current models The air throughout our homes is infused with microplastics. But there are things you can do to breathe less of them The disturbing white paper Red Hat is trying to erase from the internet – OSnews The Future of Everything is Lies, I Guess: Annoyances ‘Abhorrent’: the inside story of the Polymarket gamblers betting millions on war Productive procrastination — Max van IJsselmuiden maps, territory and LMs 447 Terabytes per Square Centimetre at Zero Retention Energy: Non-Volatile Memory at the Atomic Scale on Fluorographane Show HN: Pardonned.com – A searchable database of US Pardons 20 Years on AWS and Never Not My Job The Seasons are Wrong Artemis II crew splashes down near San Diego after historic moon mission We gave an AI a 3 year retail lease in SF and asked it to make a profit | Andon Labs How a dancer with ALS used brainwaves to perform live On filing the corners off my MacBooks Installing every* Firefox extension OpenClaw’s memory is unreliable, and you don’t know when it will break Steve Blank Nowhere Is Safe Chimpanzees in Uganda locked in vicious 'civil war', say researchers watgo - a WebAssembly Toolkit for Go linux/Documentation/process/coding-assistants.rst at master · torvalds/linux GitHub - callumlocke/json-formatter: Makes JSON easy to read. Founding Product Engineer at Bild AI | Y Combinator A compelling title that is cryptic enough to get you to take action on it GitHub - Keychron/Keychron-Keyboards-Hardware-Design: Industrial design files for Keychron keyboards and mice. 100+ models with CAD assets in STEP, DXF, DWG, and PDF. Source-available, with commercial use allowed for original compatible accessories within the license terms. [ANNOUNCE] WireGuardNT v0.11 and WireGuard for Windows v0.6 Released 1D-Chess Helium Is Hard to Replace Cooperative Vectors Introduction | Evolve Keeping a Postgres queue healthy — PlanetScale Our response to the Axios developer tool compromise Do Americans read print books, e-books or audiobooks more? The Zettelkasten Method in Obsidian: A Practical Setup Guide Artemis II Is Competency Porn and We Are Starving For It WeakC4 Flight Viz — Cockpit View A Mexican surveillance giant you’ve never heard of is now watching the U.S. border Surelock: Deadlock-Free Mutexes for Rust RISC-V 101 – what is it and what does it mean for Canonical? | Ubuntu The Problem That Built an Industry How Much Linear Memory Access Is Enough? | Solidean Investigating Split Locks on x86-64 Simplest hash functions Sybilproof reputation mechanisms (2005) [pdf] What is a property? How Complex is my Code? Static code analysis in Kotlin — tools overview Toffoli gates are all you need PGLite evangelism dcmake: a new CMake debugger UI Clojure on Fennel part one: Persistent Data Structures Fragments: April 2 Python Release Python install manager 26.1 The Life and Death of the Book Review - Liberties Introducing Database Traffic Control — PlanetScale Bitcoin miners are losing $19,000 on every BTC produced as difficulty drops 7.8% God sleeps in the minerals Building slogbox Apple Silicon and Virtual Machines: Beating the 2 VM Limit Who was “Not Even Wrong” first? Pokemon Evolution Vs Darwinian Evolution The APL Programming Language Source Code
japanese verb conjugation the simple hard way - underreacted
2026-06-22 · via Hacker News

japanese verbs are awesome. you can take the dictionary form of a verb (for example, "taberu", to eat) and turn it into many forms:

  • taberu ("eat"): tabemasu (polite "eat"), tabemashita (polite "did eat"), tabemasen (polite "not eat"), tabemasendeshita (polite "did not eat"), tabenai (casual "not eat"), tabenakatta (casual "did not eat"), tabetai ("want to eat"), tabeta (casual "did eat"), tabete ("eat and...").

  • nomu ("drink"): nomimasu (polite "drink"), nomimashita (polite "did drink"), nomimasen (polite "not drink"), nomimasendeshita (polite "did not drink"), nomanai (casual "not drink"), nomanakatta (casual "did not drink"), nomitai ("want to drink"), nonda (casual "did drink"), nonde ("drink and...").

the art (or science) of making these forms correctly is called conjugation. i've tried to learn Japanese verb conjugation a few times before. at first, it looks simple (you just swap suffixes!), but there's a lot of nuance that can drag you down as a learner.

i found a system i prefer but let me first explain why i struggled.


how conjugation is usually taught

a common way to explain conjugation looks like this:

  1. 1.

    there are two groups of verbs (often called -ru and -u verbs).

  2. 2.

    for each suffix (like -masu), you have to learn how to correctly attach it to a verb of either group (using tables like these).

i found this approach to teaching deeply frustrating and unsatisfying.

first, calling them -ru and -u verbs is confusing because you can't always tell the group by how the word ends. sometimes it's what you expect ("taberu", to eat, is a -ru verb; "nomu", to drink, is an -u verb). okay, so if something ends with -ru then surely it's a -ru verb? actually, not necessarily! "kaeru" (to go home) is an -u verb.

well, shit.

if groups alone weren't confusing, take this: then you have to memorize a dozen of seemingly arbitrary rules like "く (ku) becomes き (ki) before masu" for different suffixes. some textbooks further separate the -u verbs into five subcategories to teach these rules.

this makes japanese verb conjugation seem hard!

however, beneath these surface difficulties there is a surprisingly elegant system that's obscured by how it often gets explained. in this article, i'll explain it in a "simple hard" way. this means that instead of memorizing a bunch of individual special cases, we'll try to slowly build a coherent system from a small number of primitives.


it's just concatenation

let's go back to these two examples:

  • taberu ("eat"): tabemasu (polite "eat"), tabemashita (polite "did eat"), tabemasen (polite "not eat"), tabemasendeshita (polite "did not eat"), tabenai (casual "not eat"), tabenakatta (casual "did not eat"), tabetai ("want to eat"), tabeta (casual "did eat"), tabete ("eat and...").

  • nomu ("drink"): nomimasu (polite "drink"), nomimashita (polite "did drink"), nomimasen (polite "not drink"), nomimasendeshita (polite "did not drink"), nomanai (casual "not drink"), nomanakatta (casual "did not drink"), nomitai ("want to drink"), nonda (casual "did drink"), nonde ("drink and...").

can you spot any patterns between these two?

if you focus on the first example, conjugation looks straightforward. yes, it's a lot of suffixes, but each is added by pure concatenation:

  • tabe + ru = taberu

  • tabe + masu = tabemasu

  • tabe + mashita = tabemashita

  • tabe + masendeshita = tabemasendeshita

  • tabe + masen = tabemasen

  • tabe + nai = tabenai

  • tabe + nakatta = tabenakatta

  • tabe + tai = tabetai

  • tabe + ta = tabeta

  • tabe + te = tabete

we're going to call the left part — the part that is unchanging between these — the stem of our verb. taberu's stem is "tabe".

so now you (almost) know how to do conjugation:

To conjugate a Japanese verb, append the suffix to its stem. For example, tabe + masu = tabemasu.

in a sense, this is pretty much the entire principle! but now we need to refine our understanding of both a "stem" and of "appending".


a wildcard vowel

in the first example, the stem was very simple: just tabe.

let's now have a close look at our second example:

  • nomu ("drink"): nomimasu (polite "drink"), nomimashita (polite "did drink"), nomimasen (polite "not drink"), nomimasendeshita (polite "did not drink"), nomanai (casual "not drink"), nomanakatta (casual "did not drink"), nomitai ("want to drink"), nonda (casual "did drink"), nonde ("drink and...").

can you spot any patterns here?

there's a few things that come to my mind:

  1. 1.

    it's not entirely clear what nomu's stem is. is it nomu? but then, we define stem as the unchanging part — whereas the last vowel seems to alternate, like nomi or noma in some cases.

  2. 2.

    even if we pick nom as a stem (which is weird! you can't even write "nom" in hiragana because there's no solo "m"), that still doesn't quite work because nonda and nonde break the pattern.

for now, let's ignore nonda / nonde and focus on the first issue.

we'll say that nomu does have a stem.

we'll write it like this: nom*.

wait, what's that?

here, * is like a wildcard vowel that's "waiting to be filled". it could be noma, nomi, nomu, nome, or nomo depending on context. when writing the stem, i'll always write it neutrally like nom*.

but how is the actual vowel determined? let's try to spot a pattern:

  • nom* + masu = nomimasu

  • nom* + mashita = nomimashita

  • nom* + masendeshita = nomimasendeshita

  • nom* + masen = nomimasen

  • nom* + nai = nomanai

  • nom* + nakatta = nomanakatta

  • nom* + tai = nomitai

it seems like each of the suffixes "smuggles" its preferred secret vowel that's normally not visible. we wanted to add "masu" but got "imasu". we wanted to add "nai" but we got "anai", and so on.

this is, in fact, the case!

each of these suffixes starts with a (secret vowel). it only reveals itself if there's a * wildcard before it; otherwise it disappears:

  • nom* + (i)masu = nomimasu

  • nom* + (i)mashita = nomimashita

  • nom* + (i)masendeshita = nomimasendeshita

  • nom* + (i)masen = nomimasen

  • nom* + (a)nai = nomanai

  • nom* + (a)nakatta = nomanakatta

  • nom* + (i)tai = nomitai

in the case of tabe, there's no wildcard, so there's nowhere for the suffix's secret vowel to go. in those cases, it just gets discarded:

  • tabe + (i)masu = tabemasu

  • tabe + (i)mashita = tabemashita

  • tabe + (i)masendeshita = tabemasendeshita

  • tabe + (i)masen = tabemasen

  • tabe + (a)nai = tabenai

  • tabe + (a)nakatta = tabenakatta

  • tabe + (i)tai = tabetai

so it seems like we can formulate a rule to refine concatenation:

A suffix may start with a secret vowel. If the stem ends with a wildcard, the vowel is revealed: nom* + (i)masu = nomimasu. Otherwise, the vowel is discarded: tabe + (i)masu = tabemasu.

with this refinement, we can now conjugate the vast majority of verbs correctly. now let's pause and take stock of where we are.


so that's what the verb groups are

so far we've identified two kinds of verbs:

  • tabe + (i)masu = tabemasu

  • tabe + (i)mashita = tabemashita

  • tabe + (i)masendeshita = tabemasendeshita

  • tabe + (i)masen = tabemasen

  • tabe + (a)nai = tabenai

and

  • nom* + (i)masu = nomimasu

  • nom* + (i)mashita = nomimashita

  • nom* + (i)masendeshita = nomimasendeshita

  • nom* + (i)masen = nomimasen

  • nom* + (a)nai = nomanai

  • nom* + (a)nakatta = nomanakatta

  • nom* + (i)tai = nomitai

let's now connect it to the concepts you've heard before.

verbs like taberu are called -ru verbs or, traditionally, "ichidan" verbs (literally meaning "one-row"). verbs like nomu, on the other hand, are called -u verbs, or traditionally, "godan" (five-row).

so why are they called this way?

in ichidan ("one-row") verbs like taberu, the last syllable of the stem is fixed. it's always going to be be, no matter the suffix:

it stays on a single row in the hiragana table, hence "one-row".

on the other hand, in godan ("five-row") verbs like nomu, the final syllable of the stem alternates between ma, mi, mu, me, and mo:

it spans all the five rows, which is why it's godan ("five-row"). the m* "wildcard" represents the entire ma/mi/mu/me/mo column.


why romaji is actually good

so far, i've exclusively used romaji in these explanations.

this is actually completely intentional. some purists may dislike that, but if you're able to read it without imposing the absurdities of English language pronunciation, i think it provides a much clearer intuition for Japanese verb conjugation than writing it in hiragana.

for example, consider these conjugations that you can already do:

  • nom* + (i)masu = nomimasu

  • yob* + (i)masu = yobimasu

  • kik* + (i)masu = kikimasu

or these:

  • nom* + (a)nai = nomanai

  • yob* + (a)nai = yobanai

  • kik* + (a)nai = kikanai

some textbooks will suggest you to learn them like this:

  • む (mu) changes to み (mi) when adding ます(masu)

  • ぶ (bu) changes to び (bi) when adding ます(masu)

  • く (ku) changes to き (ki) when adding ます(masu)

  • む (mu) changes to ま (ma) when adding ない(nai)

  • ぶ (bu) changes to ば (ba) when adding ない(nai)

  • く (ku) changes to か (ka) when adding ない(nai)

which is correct but obscures the much simpler phonetical intuition:

  • * + (a) = a

  • * + (i) = i

romaji conveys the intuition because you "see" the vowel moving. but this requires "cracking" the syllables which hiragana can't do.


why romaji is actually bad

romaji is good for phonetical explanations but you should still "think" in japanese syllables. here's an easy way to verify your thinking.

consider the word hanasu ("speak"). let's try to conjugate it. to conjugate any verb, we must first find out its stem. (you can google it, check the dictionary, or sometimes guess — more on that later.)

the stem for hanasu is hanas*.

now let's try to apply the rules:

  • hanas* + (i)masu = hanasimasu (wrong!)

  • hanas* + (a)nai = hanasanai

as you can see, one of these is wrong.

can you figure out why?

(hint: recall the hiragana table. scroll down for answers)

here's the corrected version:

  • hanas* + (i)masu = hanashimasu

  • hanas* + (a)nai = hanasanai

there is no "si" in the hiragana table, so s* + (i) = shi:

this is why it's important that you don't actually "think in" romaji.

  • s* + a = sa

  • s* + i = shi

  • s* + u = su

  • s* + e = se

  • s* + o = so

i'm using romaji as a convenient way to refer to phonetics in text. however, your "mental algebra" should match the hiragana table.

to verify your understanding so far, let's do an exercise.


exercise checkpoint: a verb equation

here is a casual negative form of some verb we don't know:

  • ... + (a)nai = matanai

your task is to produce its polite negative using -(i)masen:

  • ... + (i)masen = ???

(hint: figure out the "..." stem first. scroll down for answers)

first, let's figure out the stem. in the first "equation", i've highlighted mata, which tells us that the stem must be mat*:

  • mat* + (a)nai = matanai

so this is a godan ("five-row") verb which alternates vowels. we're adding (i)masen, so t* will now "eat" the "i", so we need t* + (i):

  • mat* + (i)masen = machimasen

but here's a trap — it's machimasen, not matimasen!

this is not some fancy exception, it's just that "ti" literally doesn't exist on the table. at the intersection of t-column and i-row is chi:

  • t* + a = ta

  • t* + i = chi

  • t* + u = tsu

  • t* + e = te

  • t* + o = to

so this is a reminder to not think in romaji when you do calculations.

when we conjugate godan verbs, we literally go up and down the column. (maybe all these textbooks that used hiragana had a point!)

(note i could also have used a different romanization that renders し as "si", つ as "tu", and ち as "ti" for this article. i decided to not because everyone else uses romaji, and once you understand this point once, you shouldn't have a difficulty doing this in your head.)

now let's see if you got it!

what is the result of this calculation in normal romaji?

  • mat* + u = ???

(check yourself against the answer.)


you're 80% there

let's recap the rules you know so far:

  1. 1.

    To conjugate a verb, append a suffix to its stem.

  2. 2.

    Stems ending with * "accept" the (secret) vowel of the suffix. Otherwise, the secret vowel gets discarded.

  3. 3.

    When we do calculations, we always think in terms of the actual Japanese sounds (s + i = shi), not romaji.

as long as you know the stems, you can now conjugate many many verbs into many forms, even if you have no idea about meanings:

  • miru ("see")

    • mi is the stem

    • mi + (i)masu = mimasu ("see", polite)

    • mi + (i)masen = mimasen ("not see", polite)

    • mi + (a)nai = minai ("not see", casual)

  • oyogu ("swim")

    • oyog* is the stem

    • oyog* + (i)masu = oyogimasu ("swim", polite)

    • oyog* + (i)masen = oyogimasen ("not swim", polite)

    • oyog* + (a)nai = oyoganai ("not swim", casual)

  • neru ("sleep")

    • ne is the stem

    • ne + (i)masu = nemasu ("sleep", polite)

    • ne + (i)masen = nemasen ("not sleep", polite)

    • ne + (a)nai = nenai ("not sleep", casual)

  • kaer* ("come home")

    • kaer* is the stem

    • kaer* + (i)masu = kaerimasu ("come home", polite)

    • kaer* + (i)masen = kaerimasen ("not come home", polite)

    • kaer* + (a)nai = kaeranai ("not come home", casual)

  • iru ("exist" for alive beings)

    • i is the stem

    • i + (i)masu = imasu ("exist" for alive beings, polite)

    • i + (i)masen = imasen ("not exist" for alive beings, polite)

    • i + (a)nai = inai ("not exist" for alive beings, casual)

  • iru ("be needed")

    • ir* is the stem

    • ir* + (i)masu = irimasu ("be needed", polite)

    • ir* + (i)masen = irimasen ("not be needed", polite)

    • ir* + (a)nai = iranai ("not be needed", casual)

read these and convince yourself that you could've done all these conjugations on your own as long as you're told what the stem is.

the last two are particularly interesting because these are two different words (いる and 要る) that have the same romaji ("iru") but that different stems (i vs ir*) and therefore different conjugations.

this highlights that you don't "really" know a verb unless you either know its stem or can guess it (more on that just below).

if you want to test yourself, try conjugating these:

  • iku ("to go"), the stem is ik*

  • okiru ("to get up"), the stem is oki

  • shinu ("to die"), the stem is shin*

  • kiru ("to wear", 着る), the stem is ki

  • kiru ("to cut", 切る), the stem is kir*

notice the last two are different verbs; one ichidan, another godan.


optional: guessing stems

now we're gonna take a small break from conjugating!

a different topic: stems.

so far i've said that to conjugate a verb, you need to know its stem. that's true, but often, you can easily just guess the stem.

first, if your word's dictionary form doesn't end in -ru, it's trivial. for example, take oyogu, matsu, hanasu, yobu, nomu. the last kana column gives you the stem: oyog*, mat*, hanas*, yob*, nom*. so if the word doesn't end in -ru, finding the stem is straightforward.

not so lucky and got a "ru" ending? check what vowel before the "ru". it it's one of -aru, -oru, -uru, then it's also a godan verb.

for example, wakaru has "aru" so the stem is wakar*; moru has "oru" so we get mor*; tsukuru has "uru" so we get tsukur*. i imagine "a o u" being "sticky" and "gluing" the "r" to the stem.

okay, by this point, if you're still here, you either have something ending with -iru or -eru. at this point you're a bit screwed because it could go either way. knowing some conjugations can really help.

for example, knowing miru's polite form is mimasu tells you that "the thing in common" between them is mi, so mi must be the stem.

conversely, knowing hairimasu and hairu are two forms of the same verb tells you that its stem must be alternating vowels — so, hair*.

there's some other heuristics and lists you can use here to get very good at guessing but at this point you won't benefit much from it.

when in doubt, you can always check in the dictionary. and when you learn a new verb, make sure to learn its stem! in fact, that's part of why i like stems so much as a concept: to me, remembering a verb together with a stem, like "kaeru" or "miru", is much easier than remembering "kaeru is a -u verb" or "miru is a -ru verb".


special case: [vowel] + a

now that you understand the rules for how to do conjugation, we're going to layer on a few special cases you need to watch out for.

special cases are always annoying. the main redeeming thing i can say about them is that they all have a flavor of being driven by the phonetics, i.e. "it's easier to say things this way". i don't think of them as breaking the system — they're more like output formatting.

you might recall these special cases from the hiragana table:

  • t* + i = chi

  • t* + u = tsu

  • s* + i = shi

they're not "really" special from the Japanese perspective so it's more of an artifact of using romaji in the article. however, there are some cases that feel special even from the Japanese point of view.

consider this verb:

  • kau ("buy")

    • ka* is the stem

    • ka* + (i)masu = ???

    • ka* + (a)nai = ???

if we follow our previous approach, we'll end up with:

  • kau ("buy")

    • ka* is the stem

    • ka* + (i)masu = kaimasu

    • ka* + (a)nai = kaanai (wrong!)

this is... almost right. however, filling * with a right after a vowel is not allowed. in that case, we must separate the vowels with w:

  • kau ("buy")

    • ka* is the stem

    • ka* + (i)masu = kaimasu

    • ka* + (a)nai = kawanai

a slightly more correct way to think about this is that kau is "actually" ka[w]u, and thus the stem is ka[w]*, but this [w] is a historical sound that disappeared in every form other than before a. so it only "shows up" when "a" is glued to another vowel before it:

  • a* + a = awa

  • i* + a = iwa

  • u* + a = uwa

  • e* + a = ewa

  • o* + a = owa

(the last two are theoretical as godan stems never end with o/e.)

got it?

let's try a different verb to check your understanding:

  • iu ("say")

    • i* is the stem

    • i* + (i)masu = ???

    • i* + (a)nai = ???

    • i* + (i)masen = ???

    • i* + (a)nakatta = ???

    • i* + (i)mashita = ???

    • i* + (i)tai = ???

fill these in yourself. (scroll down for answers)

the answers are:

  • iu ("say")

    • i* is the stem

    • i* + (i)masu = iimasu

    • i* + (a)nai = iwanai

    • i* + (i)masen = iimasen

    • i* + (a)nakatta = iwanakatta

    • i* + (i)mashita = iimashita

    • i* + (i)tai = iitai

again, we could have said that the "real" stem here is i[w]*, but the [w] in it has almost entirely dissolved except if it's before a.

(the story of how this happened: many centuries ago, the consonant we now write as "w" descended from a "p". at that time, "kau" was "kapu" so its -(a)nai form would be "kapanai"; "iu" was "ipu", which would give "ipanai". in a few stages, "p" softened into "w", surviving only before "a". everywhere else it faded completely.)


a recap so far

let's recap the rules you know one more time:

  1. 1.

    To conjugate a verb, append a suffix to its stem.

  2. 2.

    Stems ending with * "accept" the (secret) vowel of the suffix. Otherwise, the secret vowel gets discarded.

  3. 3.

    When we do calculations, we always think in terms of the actual Japanese sounds (s + i = shi), not romaji.

  4. 4.

    For historical reasons, [vowel] + a becomes [vowel] + wa.

these let you complete all of these forms except the last two:

  • taberu ("eat"): tabemasu (polite "eat"), tabemashita (polite "did eat"), tabemasen (polite "not eat"), tabemasendeshita (polite "did not eat"), tabenai (casual "not eat"), tabenakatta (casual "did not eat"), tabetai ("want to eat"), tabeta (casual "did eat"), tabete ("eat and...").

  • nomu ("drink"): nomimasu (polite "drink"), nomimashita (polite "did drink"), nomimasen (polite "not drink"), nomimasendeshita (polite "did not drink"), nomanai (casual "not drink"), nomanakatta (casual "did not drink"), nomitai ("want to drink"), nonda (casual "did drink"), nonde ("drink and...").

the last two require some special attention but are incredibly useful.


the tricky ones: -ta and -te forms

finally, let's have a look at these forms:

  • tabeta ("did eat", casual)

  • tabete ("eat and...")

the latter is particularly useful for building complex sentences. since they're almost completely identical, we'll focus just on the -ta.

for ichidan (no * wildcard in the stem), adding -ta "just works":

  • tabe + (i)ta = tabeta

  • ne + (i)ta = neta

  • mi + (i)ta = mita

but for godan verbs (with the wildcard in the stem), it's trickier. the -(i)ta and -(i)te forms conjugate differently from every other form because the sounds got mangled over time due to fast speech. so this part requires at least some degree of rote memorization.

the one case that's well-behaved and plays by our rules is s*:

  • hanas* + (i)ta = hanashita

as for the other patterns, they got collapsed and lost some sounds, similar to how "did not" collapsed over time to "didn't" in English.

nasal-ish sounds (m, n, b) collapsed to -nda:

  • nom* + (i)ta = nonda

  • shin* + (i)ta = shinda

  • yob* + (i)ta = yonda

(notice how saying "nomita" fast kinda gives you "nonda")

k and g collapsed into -ita and -ida:

  • kak* + (i)ta = kaita

  • oyog* + (i)ta = oyoida

(notice how g's voicing gets transferred to d)

for every other case, the entire * syllable collapses into -tta:

  • kaer* + (i)ta = kaetta

  • tat* + (i)ta = tatta

  • a* + (i)ta = atta

and that's it for the special cases! you'll just have to remember them. we've only covered -(i)ta, but -(i)te works the same way.


conjugate away!

and now you should understand how to form all these conjugations:

  • taberu ("eat"): tabemasu (polite "eat"), tabemashita (polite "did eat"), tabemasen (polite "not eat"), tabemasendeshita (polite "did not eat"), tabenai (casual "not eat"), tabenakatta (casual "did not eat"), tabetai ("want to eat"), tabeta (casual "did eat"), tabete ("eat and..."), and so on.

  • nomu ("drink"): nomimasu (polite "drink"), nomimashita (polite "did drink"), nomimasen (polite "not drink"), nomimasendeshita (polite "did not drink"), nomanai (casual "not drink"), nomanakatta (casual "did not drink"), nomitai ("want to drink"), nonda (casual "did drink"), nonde ("drink and...").

there are some other similar suffixes that are formed the same way.

this is genuinely a lot! you should be proud of yourself :) it will take time to actually learn to use these conjugations but just being able to do them correctly is, in my opinion, quite a milestone. i also think it is easier to understand the mechanics separately from the meanings.

these are the rules that you're walking away with:

  1. 1.

    To conjugate a verb, append a suffix to its stem.

  2. 2.

    Stems ending with * "accept" the (secret) vowel of the suffix. Otherwise, the secret vowel gets discarded.

  3. 3.

    When we do calculations, we always think in terms of the actual Japanese sounds (s + i = shi), not romaji.

  4. 4.

    For historical reasons, [vowel] + a becomes [vowel] + wa.

  5. 5.

    For godan -ta and -te, s* is normal, m/b/n burn down to -nda, k and g burn down to -ita and -ida, and the rest burns to -tta.

that's it!

when you get to actually using the conjugations, here's one tip: ask yourself (1) is it polite? (2) is it negative? (3) is it past? in that exact order. doing this will help you find the right suffix. (you can draw a flowchart with these questions to see why this order helps.)

for practice, i'd recommend giving claude some verbs and asking it to ask you to conjugate them to a specific form one by one.

it is, of course, a good idea to eventually practice with hiragana.


the exceptions

oh nooooo! we have exceptions!

actually it's just a few words that conjugate in their own way:

  • suru / shimasu / shinai / shita — just remember these

  • kuru / kimasu / konai / kita — just remember these

  • negative form of aru is just "nai" rather than "aranai".

  • iku becomes itta and itte rather than iita or iite in ta/te forms

  • there's a few other verbs (kudasaru, nasaru, irassharu, ossharu, gozaru, tou, kou) with very small differences

you can learn these differences as you learn those words.


one more thing

okay, you can seriously drop off now.

however, there's one more thing we haven't talked about...

given some stem, how do you actually do the dictionary form?

let's think: for tabe stem, the dictionary form is taberu, so we added -ru. for nom*, the dictionary form is nomu, so we added -u.

so...

could we say...

maybe it's not just -u and -ru, but... a unified -[r]u?

wait, not some new notation at the very end of the article!!!

but hear me out.

so far, we've only seen suffixes with like -(i)masu, -(a)nai, where (i) and (a) are "secret vowels" activated by the *.

but what if the -u/-ru form itself is like a -[r]u suffix where [r] is a "secret consonant" that always disappears on meeting *?

this would "explain" why sometimes we get -u and sometimes -ru:

  • tabe + [r]u = taberu

  • mi + [r]u = miru

  • ne + [r]u = neru

  • nom* + [r]u = nomu

  • kaer* + [r]u = kaeru

  • hanas* + [r]u = hanasu

the u in nomu is just the vowel from [r]u jumping into the * slot.

note how it works in exact reverse to "secret vowels":

  • tabe + (i)masu = tabemasu

  • mi + (i)masu = mimasu

  • ne + (i)masu = nemasu

  • nom* + (i)masu = nomimasu

  • kaer* + (i)masu = kaerimasu

  • hanas* + (i)masu = hanashimasu

in other words, the * wildcard "reveals" () but it "deletes" [].

this could just be a fun little aside but it turns out that this pattern also extends beyond the -[r]u suffix to more useful suffixes!

for example, there is also a conditional -[r]eba suffix:

  • tabe + [r]eba = tabereba ("if [they] eat")

  • mi + [r]eba = mireba ("if [they] see")

  • ne + [r]eba = nereba ("if [they] sleep")

  • nom* + [r]eba = nomeba ("if [they] drink")

  • kaer* + [r]eba = kaereba ("if [they] come home")

  • hanas* + [r]eba = hanaseba ("if [they] speak")

again, e in nomeba is the vowel from [r]eba jumping into the * slot.

similarly, there's also a causative -[s]aseru suffix:

  • tabe + [s]aseru = tabesaseru ("make/let [them] eat")

  • mi + [s]aseru = misaseru ("make/let [them] see")

  • ne + [s]aseru = nesaseru ("make/let [them] sleep")

  • nom* + [s]aseru = nomaseru ("make/let [them] drink")

  • kaer* + [s]aseru = kaeraseru ("make/let [them] come home")

  • hanas* + [s]aseru = hanasaseru ("make/let [them] speak")

same exact pattern as -[r]u and -[r]eba!

did i already tell you that Japanese conjugation is a neat and elegant system? i haven't studied these forms yet but i hope to one day.


thank you for reading!

the mental model used in this article is partially inspired by Nasukawa (2010), "No consonant-final stems in Japanese verb morphology" and free online materials on godan and ichidan verbs.

i'm a beginner in learning Japanese, but i've tried to stay accurate. if you find mistakes or inaccuracies, please ping .