Faits:
Faits:
A. Par ordonnance du 23 septembre 2003, le Juge d'instruction de l'arrondissement de Lausanne a clos par un non-lieu une enquête pénale ouverte contre R._, sur plainte de N._. Le plaignant reprochait à R._, conseillère en placement, des propos de nature raciste. Le juge d'instruction a considéré que l'enquête n'avait pas permis d'établir l'existence d'une infraction pénale. Les frais ont été laissés à la charge de l'Etat,
A. Par ordonnance du 23 septembre 2003, le Juge d'instruction de l'arrondissement de Lausanne a clos par un non-lieu une enquête pénale ouverte contre R._, sur plainte de N._. Le plaignant reprochait à R._, conseillère en placement, des propos de nature raciste. Le juge d'instruction a considéré que l'enquête n'avait pas permis d'établir l'existence d'une infraction pénale. Les frais ont été laissés à la charge de l'Etat,
B. Par arrêt du 20 octobre 2003, le Tribunal d'accusation du Tribunal cantonal vaudois a rejeté le recours formé par N._ contre l'ordonnance de non-lieu; R._ avait refusé un cours au plaignant, en déclarant notamment qu'il serait "toujours arabe"; elle avait expliqué répondre ainsi à l'affirmation du plaignant selon lequel les emplois lui étaient refusés en raison de son âge et de son origine, et contestait avoir voulu le rabaisser. La prévention n'était pas établie. En revanche, l'ordonnance de non-lieu a été réformée en ce sens que les frais d'enquête, par 540 fr., ont été mis à la charge du plaignant, dont la démarche a été considérée comme une mesure de rétorsion abusive à l'endroit de R._.
B. Par arrêt du 20 octobre 2003, le Tribunal d'accusation du Tribunal cantonal vaudois a rejeté le recours formé par N._ contre l'ordonnance de non-lieu; R._ avait refusé un cours au plaignant, en déclarant notamment qu'il serait "toujours arabe"; elle avait expliqué répondre ainsi à l'affirmation du plaignant selon lequel les emplois lui étaient refusés en raison de son âge et de son origine, et contestait avoir voulu le rabaisser. La prévention n'était pas établie. En revanche, l'ordonnance de non-lieu a été réformée en ce sens que les frais d'enquête, par 540 fr., ont été mis à la charge du plaignant, dont la démarche a été considérée comme une mesure de rétorsion abusive à l'endroit de R._.
C. N._ forme un recours auprès du Tribunal fédéral. Il demande l'annulation de l'arrêt cantonal, et conclut à la reconnaissance de son droit de porter plainte et de demander une indemnité pour tort moral à l'Etat de Vaud. Le recourant a par la suite demandé l'assistance judiciaire.
Le Tribunal d'accusation et le Ministère public se réfèrent aux considérants de l'arrêt attaqué. R._ s'en rapporte à justice.

Le Tribunal fédéral considère en droit:
1. Le Tribunal fédéral examine d'office la qualification juridique et la recevabilité des recours qui lui sont soumis (<ref-ruling> consid. 1 p. 339 et les arrêts cités).
1.1 Le recourant ne précise pas par quelle voie de droit il entend s'adresser au Tribunal fédéral. A l'encontre d'un non-lieu confirmé en dernière instance cantonale, la voie du pourvoi en nullité est ouverte (art. 268 al. 2 de la loi fédérale sur la procédure pénale - PPF; RS 312.0 -, sous réserve de la qualité pour agir définie à l'art. 270 let. e PPF), mais uniquement pour violation du droit fédéral (art. 269 al. 1 PPF). En l'occurrence, le recourant met en cause le prononcé sur le fond, essentiellement en raison de l'appréciation des preuves. Seul serait par conséquent ouvert le recours de droit public pour violation des droits constitutionnels (art. 84 al. 1 let. a de la loi fédérale d'organisation judiciaire - OJ; RS 173.110). Le recourant ne peut toutefois conclure, dans ce cadre, qu'à l'annulation de l'arrêt attaqué: les conclusions en constatation, voire en condamnation, sont d'emblée irrecevables.
1.2 Selon l'art. 88 OJ, la qualité pour agir par la voie du recours de droit public n'appartient qu'à celui qui est atteint par l'acte attaqué dans ses intérêts personnels et juridiquement protégés. De jurisprudence constante, celui qui se prétend lésé par un acte délictueux n'a pas qualité pour recourir sur le fond contre une décision de classement, de non-lieu ou d'acquittement parce que c'est uniquement l'Etat qui est titulaire de l'action pénale (ATF 69 I 17, 128 I 218 consid. 1.1 p. 219 et les arrêts cités). Il n'en va différemment que dans les cas où le plaignant a la qualité de victime au sens de la loi fédérale sur l'aide aux victimes d'infractions (LAVI; RS 312.5), à condition que la sentence touche ses prétentions civiles ou puisse avoir des effets sur le jugement de ces dernières (art. 8 al. 1 let. c LAVI).
1.3 En l'occurrence, le recourant, qui se plaignait d'infractions contre l'honneur et de discrimination raciale, n'est pas touché dans son intégrité physique par les faits dénoncés; ceux-ci ne sont pas d'une gravité telle qu'on puisse supposer une atteinte à l'intégrité psychique (cf. <ref-ruling> consid. 1.2-1.6 p. 220 ss). Le recourant n'est donc pas une victime au sens de l'<ref-law>, et ne saurait remettre en cause l'arrêt attaqué sur le fond.
1.4 Celui qui n'a pas qualité pour recourir sur le fond peut cependant se plaindre d'un déni de justice formel, ou en d'autres termes de la violation des garanties formelles offertes aux parties par le droit cantonal de procédure ou par le droit constitutionnel, notamment le droit d'être entendu (art. 29 al. 2 Cst.). L'intérêt juridiquement protégé découle alors du droit de participer, comme plaignant ou partie civile, à la procédure cantonale. La partie recourante ne saurait toutefois, par ce biais, remettre en cause la décision attaquée sur le fond, en critiquant l'appréciation des preuves ou en faisant valoir que la motivation retenue serait matériellement fausse (<ref-ruling> consid. 3b p. 86; <ref-ruling> consid. 3b p. 94; <ref-ruling> consid. 3b p. 324 et les arrêts cités). Le recourant a par conséquent qualité pour agir dans la mesure où il conteste la partie de l'arrêt attaqué qui met à sa charge les frais d'enquête. Les griefs soulevés à cet égard doivent cependant encore satisfaire à l'exigence de motivation de l'art. 90 al. 1 let. b OJ.
1.5 Selon cette disposition, le recours doit indiquer, d'une part, quels sont les droits et principes constitutionnels violés par la décision attaquée, et préciser, d'autre part, en quoi consiste cette violation. Le Tribunal fédéral n'examine que les griefs soulevés de manière claire et explicite (<ref-ruling> consid. 2.1 p. 120). Le recourant conteste avoir agi par témérité ou légèreté, et se plaint d'arbitraire. Son argumentation consiste à réfuter les considérations de la cour cantonale, en insistant sur l'atteinte subie à sa dignité et à son honneur. Une plainte pénale ne peut certes pas être qualifiée d'abusive pour la seule raison qu'elle aboutit à un non-lieu faute de preuves. On ne discerne toutefois pas en quoi serait arbitraire le fait de retenir, comme l'a fait la cour cantonale, que la démarche du recourant constituait une mesure de rétorsion à l'égard de la conseillère en placement qui lui avait refusé un cours auquel il pensait avoir droit. Le grief du recourant se limite à une pure contestation, irrecevable.
1.5 Selon cette disposition, le recours doit indiquer, d'une part, quels sont les droits et principes constitutionnels violés par la décision attaquée, et préciser, d'autre part, en quoi consiste cette violation. Le Tribunal fédéral n'examine que les griefs soulevés de manière claire et explicite (<ref-ruling> consid. 2.1 p. 120). Le recourant conteste avoir agi par témérité ou légèreté, et se plaint d'arbitraire. Son argumentation consiste à réfuter les considérations de la cour cantonale, en insistant sur l'atteinte subie à sa dignité et à son honneur. Une plainte pénale ne peut certes pas être qualifiée d'abusive pour la seule raison qu'elle aboutit à un non-lieu faute de preuves. On ne discerne toutefois pas en quoi serait arbitraire le fait de retenir, comme l'a fait la cour cantonale, que la démarche du recourant constituait une mesure de rétorsion à l'égard de la conseillère en placement qui lui avait refusé un cours auquel il pensait avoir droit. Le grief du recourant se limite à une pure contestation, irrecevable.
2. Sur le vu de ce qui précède, le recours de droit public doit être déclaré irrecevable. L'assistance judiciaire a été demandée par le recourant. Elle peut lui être accordée, sous la forme d'une dispense du paiement de l'émolument judiciaire. Il n'est pas alloué de dépens.

Par ces motifs, le Tribunal fédéral, vu l'art. 36a OJ, prononce:
Par ces motifs, le Tribunal fédéral, vu l'art. 36a OJ, prononce:
1. Le recours est irrecevable.
1. Le recours est irrecevable.
2. Le recourant est mis au bénéfice de l'assistance judiciaire; il n'est pas perçu d'émolument judiciaire.
2. Le recourant est mis au bénéfice de l'assistance judiciaire; il n'est pas perçu d'émolument judiciaire.
3. Il n'est pas alloué de dépens.
3. Il n'est pas alloué de dépens.
4. Le présent arrêt est communiqué en copie aux parties, au Ministère public du canton de Vaud et au Tribunal d'accusation du Tribunal cantonal du canton de Vaud.
Lausanne, le 26 mars 2004
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le président: Le greffier: