Assemblers generally convert one input instruction string to one output machine language bit pattern. They may have some higher level capabilities, such as macro expansion,but you can think of them as being simple "English" to "Machine" translators.
Compilers are the tool that translates a higher level language description, say 'C' or Fortran into machine language, so more often there is a one to many relationship between input string and output. Most compilers can output the relevant assembly language for the system, and that output may in-fact be fed into an assembler to make the machine code.
They are named differently because they do different things...